Rumah >hujung hadapan web >tutorial js >Bagaimanakah Permintaan Pilihan Prapenerbangan Mendayakan Akses HTTP Rentas Domain kepada Perkhidmatan WCF?

Bagaimanakah Permintaan Pilihan Prapenerbangan Mendayakan Akses HTTP Rentas Domain kepada Perkhidmatan WCF?

Linda Hamilton
Linda Hamiltonasal
2024-10-18 21:57:30486semak imbas

How Do Preflight Options Requests Enable Cross-Domain HTTP Access to WCF Services?

Mengakses Merentas Domain Perkhidmatan WCF dengan Permintaan Pilihan Prapenerbangan

Apabila mencuba permintaan HTTP merentas domain kepada perkhidmatan WCF, adalah penting untuk mengambil kira pengehadan CORS. Artikel ini meneroka cara untuk prapenerbangan permintaan HTTP menggunakan OPTIONS untuk mengatasi halangan ini.

Proses Prapenerbangan

Sebelum menghantar permintaan sebenar, penyemak imbas mendahului permintaan menggunakan permintaan OPTIONS untuk menentukan sama ada pelayan membenarkan permintaan itu. Langkah ini termasuk menghantar dua pengepala permintaan khas:

  • Kaedah-Permintaan-Kawalan-Akses: Menentukan kaedah HTTP permintaan sebenar (cth., GET, POST)
  • Kawalan-Akses -Request-Headers: Menyenaraikan sebarang pengepala tersuai yang akan disertakan dalam permintaan sebenar

Respons Sebelah Pelayan

Untuk menampung permintaan pra-penerbangan ini, pelayan harus bertindak balas dengan pengepala yang sesuai:

  • Access-Control-Allow-Origin: Menentukan asal-usul yang dibenarkan untuk mengakses sumber
  • Access-Control-Allow-Methods: Menyenaraikan kaedah HTTP yang dibenarkan untuk sumber
  • Access-Control-Allow-Headers: Menghitung pengepala tersuai yang dibenarkan dalam permintaan sebenar

Prawangan dengan jQuery.getJSON

Menggunakan jQuery.getJSON untuk permintaan GET memerlukan pra-penerbangan dengan permintaan OPTIONS. Ini boleh dilaksanakan seperti berikut:

<code class="javascript">$.ajax({
  url: "http://your.wcf.endpoint",
  type: "OPTIONS",
  success: function(data) {
    console.log("Preflight successful:", data);
  }
});

$.getJSON("http://your.wcf.endpoint", function(data) {
  console.log("Actual GET request:", data);
});</code>

Contoh Pengepala Respons

Pertimbangkan permintaan pra-penerbangan masuk dengan pengepala berikut:

Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header

Pelayan harus bertindak balas dengan:

Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header

Pengepala-Permintaan-Kawalan-Kawalan-Akses mesti dikumandangkan dalam respons Access-Control-Allow-Headers dan kad bebas '*' tidak dibenarkan.

Atas ialah kandungan terperinci Bagaimanakah Permintaan Pilihan Prapenerbangan Mendayakan Akses HTTP Rentas Domain kepada Perkhidmatan WCF?. 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