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
Lepaskan: 2025-01-02 13:52:39
asal
161 orang telah melayarinya

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

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.');
  }
});
Salin selepas log masuk

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!

sumber:php.cn
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