javascript - CORS 响应 header 如何阻止浏览器 JavaScript 访问响应对象?

标签 javascript apache cors

所以我在 apache 服务器上使用传统的 cgi 脚本运行两个应用程序 foo.com 和 bar.com。我从 foo 向 bar 发出 AJAX 请求。 该请求使其成为 bar,执行但由于 apache 服务器没有添加任何 CORS header ,浏览器表示请求失败。

MDN 上的 CORS 文档解释说,浏览器 JavaScript 不知道失败的具体情况,它只知道响应失败。

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

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

尚不清楚谁负责包含此处的响应:

  • 是apache服务器

  • 是 fetch/XMLHTTP api

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

最佳答案

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

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

同源策略是由浏览器实现的。服务器对此一无所知(除非它可能被显式配置为在响应中发送 CORS header )。

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

关于javascript - CORS 响应 header 如何阻止浏览器 JavaScript 访问响应对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793662/

相关文章:

cors - 在 Kubernetes API 中启用 CORS

javascript - 在 Canvas 中间画一个圆圈

javascript - 如何在 Javascript 中更有效地使用 .search() 方法?

apache - 重写 Apache 的规则找不到 URL?

java - Apache POI 中的负单元格值样式

java - 如何让Apache托管的公共(public)网页访问同一网络上的私有(private) Node 服务器?

javascript - 请求的资源上不存在 'Access-Control-Allow-Origin' header 。 - Pinterest oauth 实现

javascript - 使用 prettier 更改现有代码的缩进大小

javascript - 有人可以向我解释 : appending elements to a target vs. 将元素分配给目标吗?

ajax - 在 Tomcat 中禁用 OPTIONS 请求的身份验证