【发布时间】:2017-01-23 11:33:11
【问题描述】:
我认为 SOP 在发送之前阻止了对其他域的所有请求都符合他们的规则,但我在我的机器上做了一个简单的例子,这并不完全符合我的预期:
1- 我有一个本地服务器监听端口 8000,它将打印发送到/api URL 的 POST 数据。
2- 我有另一个本地服务器,它使用以下脚本为页面提供服务:fetch('http://localhost:8000/api', {method: 'post', body: 'Sending data.'});。我更改了主机名以在浏览器中使用foo.com 访问此页面。
当我访问foo.com 时,我的跨域请求被执行,我可以在 Chrome 开发工具中看到 CORS 错误: No 'Access-Control-Allow-Origin' header is present on the requested resource,但在服务器控制台中仍然收到数据。我认为SOP的存在就是为了解决这类问题。它的工作方式,它只保证你不能得到响应。是这样吗?几乎所有的网络文档都没有这么说。
我错过了什么?还是我的例子错了?
【问题讨论】:
标签: ajax google-chrome security web cors