Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Membuat Permintaan POST Cross-Domain dalam JavaScript Tanpa Penyegaran Halaman atau Penghuraian Respons?

Bagaimanakah Saya Boleh Membuat Permintaan POST Cross-Domain dalam JavaScript Tanpa Penyegaran Halaman atau Penghuraian Respons?

Susan Sarandon
Susan Sarandonasal
2025-01-02 13:52:39190semak imbas

How Can I Make Cross-Domain POST Requests in JavaScript Without Page Refresh or Response Parsing?

Menghantar Permintaan POST Merentas Domain dengan JavaScript

Masalah:

Cara melaksanakan permintaan POST silang domain menggunakan JavaScript tanpa memuat semula halaman atau memerlukan respons menghuraikan?

Penyelesaian:

Memahami Perkongsian Sumber Merentas Asal (CORS)

Untuk memudahkan komunikasi merentas domain, CORS ialah standard yang dilaksanakan pada pelayan. Dengan menetapkan pengepala respons pada pelayan, anda boleh memberikan kebenaran kepada domain tertentu untuk mengakses sumber pada domain anda sendiri.

Konfigurasi Bahagian Pelayan (Menggunakan PHP):

  1. Dalam fail PHP sasaran (cth., postHere.php), masukkan yang berikut kod:
<?php
switch ($_SERVER['HTTP_ORIGIN']) {
    case 'http://from.com': case 'https://from.com':
    header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
    header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
    header('Access-Control-Max-Age: 1000');
    header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
    break;
}
?>

Ini membenarkan skrip dari from.com membuat permintaan POST, GET dan OPTIONS merentas domain.

Permintaan AJAX Sisi Pelanggan ( Menggunakan jQuery):

  1. Sediakan AJAX anda permintaan:
$.ajax({
  type: 'POST',
  url: 'https://to.com/postHere.php',
  crossDomain: true,
  data: '{&quot;some&quot;:&quot;json&quot;}',
  dataType: 'json',
  success: function(responseData, textStatus, jqXHR) {
    var value = responseData.someKey;
  },
  error: function (responseData, textStatus, errorThrown) {
    alert('POST failed.');
  }
});

Proses:

  1. Penyemak imbas menghantar permintaan OPTIONS untuk menyemak sama ada POST dibenarkan.
  2. Pelayan membalas dengan pengepala Access-Control yang memberikan kebenaran kepada domain tertentu.
  3. Pelayar menghantar permintaan POST sebenar.
  4. Pelayan memproses permintaan dan mengembalikan respons.

Pertimbangan:

  • Pastikan keselamatan yang betul langkah berjaga-jaga dibuat apabila memberikan akses silang asal.
  • Pelayar mudah alih biasanya melakukannya tidak menyokong POST merentas domain.
  • Pertimbangkan potensi overhed permintaan berganda dan implikasi keselamatan.
  • Sentiasa kembalikan pengepala CORS yang sesuai dalam respons, bukan hanya untuk permintaan OPTIONS.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Permintaan POST Cross-Domain dalam JavaScript Tanpa Penyegaran Halaman atau Penghuraian Respons?. 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