CORS:预检 HTTPRequests
跨源资源共享 (CORS) 对跨域 HTTP 请求造成限制。为了解决这些挑战,可以采用预检请求。在这种情况下,预检请求涉及在发出实际请求之前向服务器发送 OPTIONS 请求。这允许服务器验证请求是否被允许并提供必要的权限。
如何预检请求
预检 HTTP 请求涉及发送 OPTIONS 请求带有特定的标头,指示实际请求所需的方法和标头。服务器使用授予或拒绝请求权限的标头进行响应。
服务器端预检响应
服务器应使用以下标头响应预检请求:
客户端预检请求
在 jQuery 中,可以使用以下技术来预检请求:
<code class="javascript">$.ajax({ url: yourUrl, type: 'OPTIONS', success: function(data, status) { // Extract and verify the preflight response headers var origin = data.getResponseHeader('Access-Control-Allow-Origin'); var methods = data.getResponseHeader('Access-Control-Allow-Methods'); var headers = data.getResponseHeader('Access-Control-Allow-Headers'); // Proceed with the actual request only if permissions are granted if (origin === 'http://mydomain.com' && methods.indexOf('POST') !== -1 && headers.indexOf('X-Custom-Header') !== -1) { // Make the actual request } else { // Handle the error and deny the request } } });</code>
通过实施这些更改,您可以确保跨域 HTTP 请求经过预检验证,并且无需浏览器干预即可继续。
以上是如何预检跨源资源共享 (CORS) 的 HTTP 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!