Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Pra-Penerbangan Permintaan HTTP untuk Perkongsian Sumber Silang Asal (CORS)?

Bagaimana untuk Pra-Penerbangan Permintaan HTTP untuk Perkongsian Sumber Silang Asal (CORS)?

Patricia Arquette
Patricia Arquetteasal
2024-10-18 21:54:31936semak imbas

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

CORS: Preflighting HTTPRequests

Cross-Origin Resource Sharing (CORS) menimbulkan pengehadan pada permintaan HTTP merentas domain. Untuk menangani cabaran ini, permintaan prapenerbangan boleh digunakan. Dalam konteks ini, permintaan prapenerbangan melibatkan penghantaran permintaan OPTIONS kepada pelayan sebelum permintaan sebenar dibuat. Ini membolehkan pelayan mengesahkan bahawa permintaan itu dibenarkan dan memberikan kebenaran yang diperlukan.

Cara Pra-Penerbangan Permintaan

Pralighting permintaan HTTP melibatkan penghantaran permintaan OPTIONS dengan pengepala khusus, menunjukkan kaedah dan pengepala yang diingini untuk permintaan sebenar. Pelayan bertindak balas dengan pengepala yang memberikan atau menafikan kebenaran permintaan.

Respons Prapenerbangan Sisi Pelayan

Pelayan harus membalas permintaan prapenerbangan dengan pengepala berikut:

  • Access-Control-Allow-Origin: Domain yang dibenarkan untuk membuat permintaan sebenar.
  • Access-Control-Allow-Methods: Kaedah yang dibenarkan untuk permintaan sebenar.
  • Access-Control-Allow-Headers: Pengepala yang dibenarkan untuk permintaan sebenar. Pengepala ini tidak boleh '*'.

Permintaan Pra-Penerbangan Sisi Pelanggan

Dalam jQuery, teknik berikut boleh digunakan untuk pra-penerbangan permintaan:

<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>

Dengan melaksanakan perubahan ini, anda boleh memastikan bahawa permintaan HTTP merentas domain anda disahkan pra-penerbangan dan boleh diteruskan tanpa campur tangan penyemak imbas.

Atas ialah kandungan terperinci Bagaimana untuk Pra-Penerbangan Permintaan HTTP untuk Perkongsian Sumber Silang Asal (CORS)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn