cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Mengapa $.post() dalam jquery tidak boleh menghantar data merentas domain?

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?

習慣沉默習慣沉默2781 hari yang lalu641

membalas semua(3)saya akan balas

  • 世界只因有你

    世界只因有你2017-05-16 13:38:50

    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

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:38:50

    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.

    balas
    0
  • 阿神

    阿神2017-05-16 13:38:50

    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).

    balas
    0
  • Batalbalas