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

Patricia Arquette
Lepaskan: 2024-10-18 21:54:31
asal
1017 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan