access-control-allow-origin → null
对于GET或OPTIONS请求
http://localhost:4000/api/accounts?Host=http://localhost:4200/&X-Origin=http://jquery.com
使用Origin而不是X-Origin也不会改变结果.
同时,如果我像这样使用cURL
curl -H "Origin: http://jquery.com" --verbose http://localhost:4000/api/accounts
我确实可以访问API
< access-control-allow-origin: http://jquery.com
我还使用http和chrome Javascript控制台打开了jQuery网站,以便执行此代码:
$.get("http://localhost:4000/api/accounts").then(function(val){console.log(val);})
它打印了API返回的JSON对象.
现在我的问题如下:
>如何使用Postman正确测试CORS?我注意到,当在服务器上设置allow origin选项时,* Postman确实会返回
access-control-allow-origin→*
只有当我明确允许一组来源时才会出现上述问题:
`origin: ["https://www.getpostman.com/","http://localhost:4200/","http://jquery.com"]`
>我注意到允许http://jquery.com/而不是http://jquery.com不允许来源为Origin = http://jquery.com的请求?
>我注意到即使请求来自非授权来源,cURL也会返回资源的内容(在本例中为JSON数据).这是正常的还是意味着我忘了在服务器上配置暴露这些数据的东西?
解决方法
例如,如果您在Chrome中向http://www.telerik.com/发出请求,则请求标头包含Origin:http://www.telerik.com(浏览器自动发送此请求),以及来自的响应标头服务器包含Access-Control-Allow-Origin:http://www.telerik.com.
至于你的上一个问题,根据规范,用户代理负责执行CORS,所以我怀疑cURL不会验证请求和响应是否匹配.
The user agent validates that the value and origin of where the
request originated match.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。