javascript - Mengapa $.post() dalam jquery tidak boleh menghantar data merentas domain?
習慣沉默
習慣沉默 2017-05-16 13:36:50
0
3
617

Seperti tajuk, mengapa kaedah ajax yang dirangkumkan dalam jquery boleh menggunakan jsonp untuk menyerahkan data dalam kaedah dapatkan, tetapi secara langsung menggunakan kaedah pos untuk menyerahkan data merentas domain Apakah puncanya?

習慣沉默
習慣沉默

membalas semua(3)
世界只因有你

Fungsi jquery sendiri tidak disokong, tetapi anda boleh melaksanakan siaran merentas domain berdasarkan jquery.

jquery sendiri hanya menyokong domain silang jsonp, tetapi prinsip jsonp mengehadkannya kepada hanya menyokong get.

Jika anda ingin melaksanakan merentas domain jquery asli, tambahkan Access-Control-Allow-Origin di kepala alamat permintaan anda, dan tetapkan nilai kepada nama domain (atau *) yang memanggil API

仅有的幸福

Cross-domain secara amnya terbahagi kepada dua jenis:

  1. jsonp silang domain. jsonp pada asalnya menggunakan kaedah dapatkan fail untuk memintas semakan merentas domain, jadi ia tidak menyokong siaran. Terdapat juga perpustakaan pihak ketiga yang menggunakan get untuk mensimulasikan permintaan siaran.

  2. COR silang domain. COR silang domain perlu mengubah suai respons Access-Control-Allow-Origin sebelah pelayan. Secara amnya, pelanggan akan menghantar dua permintaan pos Jenis kali pertama ialah pilihan Selepas pelayan membalas dengan kebenaran, kali kedua menghantar permintaan sebenar dengan data.
    Jika syarat responden membenarkan, cuba gunakan kaedah silang domain kedua, yang boleh menyokong siaran secara langsung.

Jika konfigurasi pelayan tidak boleh diubah suai, responden boleh mencari perpustakaan pihak ketiga untuk melihat sama ada jsonp boleh digunakan untuk mensimulasikan permintaan siaran.

阿神

Perhatikan bahawa bukan jquery tidak menyokongnya, tetapi penyemak imbas memintas respons dan memberi anda ralat apabila ia tidak membenarkan pengepala merentas domain. Selepas jquery menerima ralat ini, ia akan melaporkan ralat merentas domain kepada anda.
Anda boleh ambil satu paket dan lihat (berhati-hati untuk tidak menggunakan f12 pelayar untuk menangkap paket tersebut, sebenarnya respon dari pelayan ada).

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan