首頁 > web前端 > js教程 > 主體

如何預檢跨來源資源共享 (CORS) 的 HTTP 請求?

Patricia Arquette
發布: 2024-10-18 21:54:31
原創
935 人瀏覽過

How to Preflight an HTTP Request for Cross-Origin Resource Sharing (CORS)?

CORS:預檢 HTTPRequests

跨來源資源共享 (CORS) 對跨域 HTTP 請求造成限制。為了解決這些挑戰,可以採用預檢請求。在這種情況下,預檢請求涉及在發出實際請求之前向伺服器發送 OPTIONS 請求。這允許伺服器驗證請求是否被允許並提供必要的權限。

如何預檢請求

預檢 HTTP 請求涉及發送 OPTIONS 請求帶有特定的標頭,指示實際請求所需的方法和標頭。伺服器使用授予或拒絕請求權限的標頭進行回應。

伺服器端預檢回應

伺服器應使用下列標頭回應預檢請求:

  • Access-Control- Allow-Origin: 允許發出實際請求的網域。
  • Access-Control-Allow-Methods: 實際要求允許的方法。
  • Access-Control-Allow-Headers: 實際請求允許的標頭。此標頭不能為“*”。

客戶端預檢請求

在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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!