【发布时间】:2017-08-08 08:42:32
【问题描述】:
对于某些 API,数据很容易访问,并且不会引发以下 CORS 错误。
XMLHttpRequest 无法加载 http://external.service/。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://my.app' 因此不允许访问。
我很困惑为什么它不会引发错误。
在 Node.js 中,当我想在我的服务器上启用 CORS 时,我必须这样做:
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
我假设以下 API 已以类似方式设置,但我正在寻找验证是否属实。我希望我的理解在技术上是准确的。
如果有其他解释,我想知道。
一些不引发 CORS 错误的 API 示例如下:
https://itunes.apple.com/hk/rss/topalbums/limit=10/json
【问题讨论】:
-
你看标题了吗?
-
他们都发出
access-control-allow-origin标题 - 那么,问题是什么? -
没有答案。就像我在查询中所说的那样,我只是想要验证。
-
保证如果浏览器发出成功的跨源请求,则服务器正在发送 CORS 标头 ... CORS 不是“可选”且不能“绕过”
-
当你说 CORS 不能被绕过时,我很困惑。当发送“access-control-allow-origin”标头并且数据可用时,会调用什么? CORS 是一个无法绕过的标准,但是通过设置标头可以访问数据并绕过错误 - 正确吗?
标签: javascript ajax xmlhttprequest cors