首页  >  文章  >  web前端  >  如何预检 HTTP 请求以处理跨域 XMLHttpRequest 调用?

如何预检 HTTP 请求以处理跨域 XMLHttpRequest 调用?

Barbara Streisand
Barbara Streisand原创
2024-10-18 21:53:30220浏览

How to Preflight HTTP Requests to Handle Cross-Domain XMLHttpRequest Calls?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn