Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menyelesaikan Ralat \'Kolon Token Tidak Dijangka\' dalam Permintaan JSONP Menggunakan jQuery.ajax#get?

Bagaimana untuk Menyelesaikan Ralat \'Kolon Token Tidak Dijangka\' dalam Permintaan JSONP Menggunakan jQuery.ajax#get?

Linda Hamilton
Lepaskan: 2024-10-19 22:54:02
asal
1112 orang telah melayarinya

How to Resolve

Kolon Token Tidak Dijangka: Menyelesaikan Ralat JSONP dalam jQuery.ajax#get

Apabila menghadapi ralat "Kolon Token Tidak Dijangka" dalam jQuery.ajax #get, adalah penting untuk memahami sifat permintaan JSONP (JSON dengan Padding). JSONP melibatkan penghantaran semula data JSON ke panggilan fungsi JavaScript global pada bahagian klien.

Untuk menyokong JSONP, pelayan mesti memasukkan "Padding" dalam respons. "Padding" terdiri daripada nama fungsi panggil balik diikuti dengan data JSON yang disertakan dalam kurungan:

jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})
Salin selepas log masuk

Dalam contoh ini, nama fungsi panggil balik ialah jQuery111108398571682628244_1403193212453. Ralat berlaku kerana JavaScript menghuraikan JSONP sebagai JavaScript, dengan {...} juga mewakili blok.

Untuk membetulkan ralat ini, pelayan perlu memasukkan "Padding" dalam respons. Selain itu, jQuery biasanya akan menyertakan parameter rentetan pertanyaan panggil balik dengan nama fungsi. Untuk menampung ini, kod pelayan boleh menggunakan pernyataan bersyarat untuk menyemak parameter panggil balik dan menghantar respons dengan sewajarnya:

var callback = req.query.callback;
var data = JSON.stringify({
    Name : "Tom",
    Description : "Hello it's me!"
});

if (callback) {
    res.setHeader('Content-Type', 'text/javascript');
    res.end(callback + '(' + data + ')');
} else {
    res.setHeader('Content-Type', 'application/json');
    res.end(data);
}
Salin selepas log masuk

Sebagai alternatif, ExpressJS menyediakan kaedah res.jsonp() yang sudah mengendalikan keadaan ini, menjadikannya lebih mudah untuk mengembalikan respons JSONP:

app.get( '/', function( req, res ) {
    console.log( 'req received' );

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Kolon Token Tidak Dijangka' dalam Permintaan JSONP Menggunakan jQuery.ajax#get?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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