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

时间:2019-06-27 14:49:16

标签: javascript apache cors

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

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

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

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

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

  • 是Apache服务器

  • 是提取/ XMLHTTP api

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

浏览器收到HTTP响应,确定未授予权限,并生成一个响应对象,说明它提供给JavaScript程序的内容。