CORS:如何预检 HTTP 请求
处理跨域 HTTP 请求时,利用诸如实现源代码的动态脚本标记之类的技术GET 请求 URL 可能并不总是可行,特别是对于同时支持 GET 和 POST 方法的服务。因此,一种有效的解决方法是将服务器响应配置为包含“Access-Control-Allow-Origin”标头,并使用 OPTIONS 请求进行预检请求。
在预检 OPTIONS 请求期间,浏览器包含两个标头:Access-控制请求方法和访问控制请求标头。这些标头指示客户端打算在实际请求中使用哪些方法和标头。
要成功预检请求,服务器需要在其预检响应中确认这些标头。例如,如果浏览器在预检请求期间发送以下标头:
<code class="console">Origin: http://yourdomain.com Access-Control-Request-Method: POST Access-Control-Request-Headers: X-Custom-Header</code>
服务器的预检响应应包含以下标头:
<code class="console">Access-Control-Allow-Origin: http://yourdomain.com Access-Control-Allow-Methods: GET, POST Access-Control-Allow-Headers: X-Custom-Header</code>
至关重要的是,“访问控制” -Allow-Headers”响应标头必须包含与“Access-Control-Request-Headers”请求标头中指定的相同标头,并且不应包含通配符“*”。
服务器发送此消息后预检响应后,浏览器将继续发出实际请求。有关 CORS 实施的更多信息和示例,请参阅 html5rocks.com/en/tutorials/cors/ 等资源。
以上是如何预检 HTTP 请求以处理跨域 XMLHttpRequest 调用?的详细内容。更多信息请关注PHP中文网其他相关文章!