繁体   English   中英

CORS响应标头如何阻止浏览器JavaScript访问响应对象?

[英]How do CORS response headers prevent browser javascript to access response object?

因此,我在apache服务器上使用传统的cgi脚本运行两个应用程序foo.com和bar.com。 我从foo到bar发出AJAX请求。 该请求被禁止执行,但是由于apache服务器未添加任何CORS标头,因此浏览器表示请求失败。

MDN上的CORS文档解释说,浏览器Javascript不知道失败的细节,它只知道响应失败。

我的问题是,响应对象是否包含我的cgi脚本返回的响应,并且浏览器只是选择将其显示为错误,因为它找不到Access-Control-Allow-Origin标头?

从我对响应对象的检查来看,似乎apache服务器根本没有从cgi脚本的输出发送响应。

目前尚不清楚,谁负责在此处包含响应:

  • 是apache服务器吗

  • 是fetch / XMLHTTP API

注意:我使用jquery进行AJAX调用

CORS响应标头如何阻止浏览器JavaScript访问响应对象?

他们没有。 您的JS无法访问响应数据是默认行为。 CORS标头可以授予默认情况下将被拒绝的权限。

相同来源策略是由浏览器实现的。 服务器对此一无所知(除了可能被明确配置为在响应中发送CORS标头之外)。

浏览器接收HTTP响应,确定未授予许可,并生成一个响应对象,说明该对象提供给JavaScript程序的程度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM