mon*_*sur 455
以下是使用curl调试CORS请求的方法.
使用cUrl发送常规CORS请求:
curl -H "Origin: http://example.com" --verbose \
https://www.googleapis.com/discovery/v1/apis?fields=
Run Code Online (Sandbox Code Playgroud)
该-H "Origin: http://example.com"标志是发出请求的第三方域.替换你的域名.
该--verbose标志打印出整个响应,以便您可以看到请求和响应标头.
我在上面使用的URL是一个示例请求到支持CORS谷歌的API,但你可以在任何网址,你正在测试替代.
响应应包括Access-Control-Allow-Origin标题.
使用cUrl发送预检请求:
curl -H "Origin: http://example.com" \
-H "Access-Control-Request-Method: POST" \
-H "Access-Control-Request-Headers: X-Requested-With" \
-X OPTIONS --verbose \
https://www.googleapis.com/discovery/v1/apis?fields=
Run Code Online (Sandbox Code Playgroud)
这看起来类似于常规的CORS请求,但增加了一些内容:
该-H标志增派预检请求头到服务器
该-X OPTIONS标志表示这是HTTP OPTIONS请求.
如果预检请求成功,响应应该包括Access-Control-Allow-Origin,Access-Control-Allow-Methods和 Access-Control-Allow-Headers响应头.如果预检请求不成功,则不应显示这些标头,否则HTTP响应将不是200.
您还可以User-Agent使用-H标志指定其他标头,例如.
Vil*_*kas 37
curl -H "Access-Control-Request-Method: GET" -H "Origin: http://localhost" --head http://www.example.com/
Run Code Online (Sandbox Code Playgroud)
Access-Control-Allow-*那么您的资源支持CORS.替代答案的理由
我不时地谷歌这个问题,接受的答案永远不是我需要的.首先它打印响应体,这是很多文本.---head仅添加输出标头.第二,在测试S3 URL时,我们需要提供额外的标头-H "Access-Control-Request-Method: GET".
希望这会节省时间.
预检请求是使用OPTIONSHTTP 方法完成的。
假设您想在从http://mysite.example.com到https://myapi.example.com/foo的POST请求上测试 CORS ,命令应为:
\ncurl -XOPTIONS \\\n -H "Access-Control-Request-Method: POST" \\\n -H "Origin: http://mysite.example.com" \\\n https://myapi.example.com/foo\nRun Code Online (Sandbox Code Playgroud)\n响应是一条OK错误消息,例如Disallowed CORS origin。如果您喜欢,您仍然可以使用包含标头。-i\xe2\x80\x99d。
这比其他发出GET或HEAD请求并要求您解释标头的响应要简单得多。
\n下面的 bash 脚本“corstest”对我有用。它基于Jun的上述评论。
用法
corstest [-v] 网址
例子
./corstest https://api.coindesk.com/v1/bpi/currentprice.json
https://api.coindesk.com/v1/bpi/currentprice.json Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
阳性结果显示为绿色
./corstest https://github.com/IonicaBizau/jsonrequest
https://github.com/IonicaBizau/jsonrequest does not support CORS
you might want to visit https://enable-cors.org/ to find out how to enable CORS
Run Code Online (Sandbox Code Playgroud)
阴性结果以红色和蓝色显示
-v 选项将显示完整的 curl 标头
考斯特
./corstest https://api.coindesk.com/v1/bpi/currentprice.json
https://api.coindesk.com/v1/bpi/currentprice.json Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
看起来这只是有效的:
curl -I http://example.com
在返回的标头中查找Access-Control-Allow-Origin: *。
| 归档时间: |
|
| 查看次数: |
160380 次 |
| 最近记录: |