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

Barbara Streisand
Lepaskan: 2024-10-19 22:57:02
asal
581 orang telah melayarinya

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);
}
Salin selepas log masuk

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!"
    });
});
Salin selepas log masuk

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!

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