如何测试 CORS 标头

bhu*_*uvi 10 header cross-domain cors

我们的应用程序支持 CORS 配置标头。我在两个不同的主机上分别配置了 testApp。这两种设置相互独立。host1 上的应用程序配置了 CORS 标头 Access-Control-Allow-Origin 以指向 host2 上的应用程序。当我访问 host2 的应用程序页面时,我希望它显示 Access-Control-Allow-Origin 标头作为响应。但是缺少哪个。

如何测试 CORS 标头以确认其正常工作或正确编码以支持跨域资源共享。

小智 31

您可以利用fetch浏览器调试器提供的功能(Chrome 和 Firefox 上的 F12,然后转到控制台):

fetch('https://google.ca')

如果您收到 CORS 错误,则意味着您使用 (Origin) 打开调试器的当前站点未包含在Access-Control-Allow-Origin您从中获取的站点的标头中。


het*_*het 30

您可以从终端使用 cUrl 对其进行测试。

curl -v --request OPTIONS 'https://your-host.here' -H 'Origin: http://some.origin.here' -H 'Access-Control-Request-Method: GET'
Run Code Online (Sandbox Code Playgroud)


Rud*_*dyD 13

如果您的应用程序返回标头:Access-Control-Allow-Origin 那么它应该可以工作。在我的特定用例中,我将其设置为“*”。

否则测试将显示错误,可从浏览器控制台查看。它会说:访问...已被 CORS 策略阻止

来自浏览器控制台的 CORS 未启用错误消息 - 屏幕抓取

您可以使用浏览器测试 CORS 标头是否正常工作。我用过这个,希望这会有所帮助。您会在其中找到说明。https://github.com/cactuz/cors-tester-from-browser

  • 您想要设置“Access-Control-Allow-Origin: *”的用例极少。这实际上会禁用您的应用程序的身份验证,因为任何网站现在都可以劫持您的用户会话。 (4认同)
  • @ATOMP 尽管不建议使用 * 值,但 ACAO 标头与身份验证无关,并且没有现代网站使用此标头作为身份验证方法。 (4认同)

小智 -4

您可以使用任何其他客户端(例如POSTMAN Rest Client )来测试它,或者您可以从浏览器控制台 - > 网络选项卡 - > 在 xhr 过滤器中检查它- 检查特定请求的标头。您可以检查请求和响应。

  • 不,您无法使用 Postman 测试 CORS。/sf/answers/2554033191/ (13认同)
  • 如果在请求中设置了“Origin”标头,服务器甚至会将 CORS 标头发送回邮递员客户端。 (5认同)
  • 为什么你不能?你不能看一下响应的标题吗?您可以查找“access-control-allow-origin”。 (3认同)