Rumah  >  Soal Jawab  >  teks badan

javascript - jsonp hanya boleh menggunakan get reason

Mengapa jsonp hanya boleh menggunakan permintaan mendapatkan? Adakah kerana beberapa sebab mendapatkan, beberapa sebab pos, atau beberapa sebab lain saya menyemak dokumen dan ia mengatakan bahawa 'ini ditentukan oleh ciri-ciri teknologi itu sendiri' beritahu saya tentang ini Apakah ciri itu sendiri merujuk kepada Bolehkah anda menerangkannya secara terperinci? Terima kasih banyak!

阿神阿神2688 hari yang lalu1241

membalas semua(5)saya akan balas

  • PHP中文网

    PHP中文网2017-06-12 09:30:42

    JSONP ialah
    【Minta skrip JS dan layan hasil pelaksanaan skrip ini sebagai data】
    .

    Jadi, bolehkah anda POST skrip yang diperkenalkan melalui tag skrip?

    (Jika anda telah membaca kod sumber perpustakaan JSONP, anda akan tahu bahawa kod pelaksanaan biasa sebenarnya document.createElement('script') menjana teg skrip dan memasukkannya ke dalam badan. Tiada ruang untuk menetapkan format permintaan di sini).

    balas
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:30:42

    Kod JS dalam nama domain A AJAX meminta data pelayan dengan nama domain B. Ini ialah permintaan AJAX merentas domain, yang tidak boleh dilakukan secara lalai.

    Tetapi terdapat tempat dalam HTML di mana permintaan merentas domain boleh dibuat, seperti teg skrip img Atribut src mereka menghala ke alamat yang tidak berada di bawah nama domain A (iaitu, merentas domain).

    Kemudian seseorang mengambil kesempatan daripada ciri di atas, memilih ciri src dalam skrip yang boleh mendapatkan kandungan merentas domain dan membangunkan protokol penggodaman seperti JSONP. (Permintaan dalam src semuanya DAPAT)

    Itu menganggap permintaan JSONP adalah seperti berikut:

    jsonp({
        url: 'http://path/to/server/b',
        params: {A: a, B: b},
        success: function myCallback (response) {}
    })

    Apa yang berlaku di sebalik tabir:

    1. Sambung tag skrip, <script src="http://path/to/server/b?A=a&B=b&callbackFunctionName=myCallback"></script>, untuk mencetuskan permintaan GET ke alamat yang ditentukan

    2. Pelayan memproses permintaan GET ini dan mengembalikan rentetan "myCallback('nilai tindak balas')"

    3. Selepas skrip bahagian hadapan dimuatkan, ia sebenarnya dilaksanakan dalam skripmyCallback('response value')

    4. Adakah permintaan merentas domain telah diselesaikan?

    5. Adakah hanya boleh menggunakan GET

    balas
    0
  • 黄舟

    黄舟2017-06-12 09:30:42

    Sama seperti menambahkan kod js secara dinamik pada halaman anda, adakah anda fikir fail js boleh disiarkan?

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-12 09:30:42

    Andaikan alamat yang anda minta mengembalikan halaman web seperti ini.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="jquery.min.js"></script>
    </head>
    <body>
        
    </body>
    </html>

    Pelayar perlu menghuraikan halaman web ini selepas mendapatkannya, dan menghuraikannya ke

    <script src="jquery.min.js"></script>

    Apabila saya membaca baris kod ini, saya tahu bahawa fail js diperlukan di sini, jadi saya memulakan permintaan lain untuk mendapatkan fail js ini hanya boleh menggunakan kaedah GET, bukan POST, sama seperti anda memasukkan alamat dalam bar alamat penyemak imbas Ia sama seperti menekan Enter untuk masuk.

    Prinsip pelaksanaan JSONP adalah untuk mencipta tag skrip, dan kemudian meletakkan alamat api yang perlu diminta dalam src Jadi ia hanya boleh GET.

    balas
    0
  • 代言

    代言2017-06-12 09:30:42

    Oleh kerana teg <skrip> hanya GET disokong

    balas
    0
  • Batalbalas