小编典典

如何使用 cURL 调试 CORS 请求?

all

如何使用 cURL 调试 CORS 请求?到目前为止,我找不到任何方法来“模拟”预检请求。


阅读 92

收藏
2022-03-23

共1个答案

小编典典

以下是使用 curl 调试 CORS 请求的方法。

使用 cUrl 发送常规 CORS 请求:

curl -H "Origin: http://example.com" --verbose \
  https://www.googleapis.com/discovery/v1/apis?fields=

-H "Origin: http://example.com"标志是发出请求的第三方域。替换您的域。

--verbose标志打印出整个响应,因此您可以看到请求和响应标头。

我在上面使用的 url 是对支持 CORS 的 Google API 的示例请求,但您可以替换您正在测试的任何 url。

响应应包括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标志向服务器发送额外的预检请求标头

-X OPTIONS标志表明这是一个 HTTP OPTIONS 请求。

如果预检请求成功,则响应应包含Access-Control-Allow-OriginAccess-Control-Allow-Methods
Access-Control-Allow-Headers响应标头。如果预检请求不成功,则不应出现这些标头,否则 HTTP 响应不会为 200。

User-Agent您还可以使用-H标志指定其他标头,例如。

2022-03-23