如何使用 cURL 调试 CORS 请求?到目前为止,我找不到任何方法来“模拟”预检请求。
以下是使用 curl 调试 CORS 请求的方法。
使用 cUrl 发送常规 CORS 请求:
curl -H "Origin: http://example.com" --verbose \ https://www.googleapis.com/discovery/v1/apis?fields=
该-H "Origin: http://example.com"标志是发出请求的第三方域。替换您的域。
-H "Origin: http://example.com"
该--verbose标志打印出整个响应,因此您可以看到请求和响应标头。
--verbose
我在上面使用的 url 是对支持 CORS 的 Google API 的示例请求,但您可以替换您正在测试的任何 url。
响应应包括Access-Control-Allow-Origin标题。
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=
这看起来类似于常规的 CORS 请求,但添加了一些内容:
-H标志向服务器发送额外的预检请求标头
-H
该-X OPTIONS标志表明这是一个 HTTP OPTIONS 请求。
-X OPTIONS
如果预检请求成功,则响应应包含Access-Control-Allow-Origin、Access-Control-Allow-Methods和 Access-Control-Allow-Headers响应标头。如果预检请求不成功,则不应出现这些标头,否则 HTTP 响应不会为 200。
Access-Control-Allow-Methods
Access-Control-Allow-Headers
User-Agent您还可以使用-H标志指定其他标头,例如。
User-Agent