如何用cURLdebuggingCORS请求?

如何使用cURLdebuggingCORS请求? 到目前为止,我找不到任何方式来“模拟”预检请求。

以下是如何使用curldebuggingCORS请求。

使用cUrl发送一个常规的CORS请求:

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

-H "Origin: http://example.com"标志是提出请求的第三方域名。 replace你的任何领域。

--verbose标志打印出整个响应,所以你可以看到请求和响应标题。

我上面使用的url是对支持CORS的Google API的示例请求,但是您可以replace您正在testing的任何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-MethodsAccess-Control-Allow-Headers响应标头。 如果预检请求不成功,则不应出现这些标头,否则HTTP响应不会是200。

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