Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Membetulkan Ralat \'Kolon Token Tidak Dijangka JSON\' dalam jQuery.ajax#get?

Bagaimana untuk Membetulkan Ralat \'Kolon Token Tidak Dijangka JSON\' dalam jQuery.ajax#get?

Barbara Streisand
Barbara Streisandasal
2024-10-19 22:57:02634semak imbas

How to Fix the

Mengatasi Ralat "JSON Kolon Token Tidak Dijangka" dalam jQuery.ajax#get

Dalam percubaan anda untuk mendapatkan data JSON daripada API minimalis anda buat dalam Node.js, anda mengalami ralat "Token tidak dijangka :" dalam Chrome. Ralat ini biasanya berlaku disebabkan oleh ketidakpadanan antara respons JSON yang dijangka dan sebenar daripada pelayan.

Apabila membuat panggilan AJAX menggunakan jQuery.ajax#get dan menentukan jenis data sebagai 'jsonp', respons pelayan memerlukan "padding" (P) untuk menyokong permintaan JSONP. JSONP ialah teknik yang membenarkan permintaan merentas domain dengan membungkus data JSON dalam panggilan fungsi.

Untuk menyelesaikan isu ini, anda perlu mengubah suai kod sebelah pelayan untuk memasukkan padding dalam respons. Dalam kod Node.js anda, tambahkan baris berikut:

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);
}

Sebagai alternatif, jika anda menggunakan Express.js, anda boleh menggunakan kaedah res.jsonp() yang mengendalikan penambahan padding secara automatik :

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

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

Dengan pengubahsuaian ini, pelayan akan menghantar respons JSONP yang dibalut dengan panggilan fungsi, yang boleh dihuraikan oleh jQuery.ajax#get tanpa menghadapi ralat "Token tidak dijangka".

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

Kenyataan:
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