'JSON Kolon Token Tidak Dijangka selepas jQuery.ajax#get': Panduan Komprehensif
Pengenalan
Isu ini timbul apabila cuba membuat permintaan AJAX menggunakan jQuery dan menerima data daripada pelayan yang mengembalikan JSON dalam format yang tidak serasi dengan konfigurasi permintaan. Ini boleh mengecewakan, tetapi memahami punca dan menggunakan penyelesaian yang sesuai boleh menyelesaikannya.
Punca Punca
Ralat "JSON kolon token tidak dijangka selepas jQuery. ajax#get" berlaku apabila pelayan mengembalikan data JSON tanpa padding yang betul atau parameter rentetan pertanyaan panggil balik. JSONP (JSON dengan Padding) ialah teknik yang digunakan semasa membuat permintaan silang asal, di mana pelayan membungkus data JSON dalam panggilan fungsi untuk mengelakkan sekatan keselamatan penyemak imbas. Walau bagaimanapun, jika pelayan gagal memasukkan parameter padding atau panggil balik, penyemak imbas akan mentafsirkan respons sebagai JSON tidak sah.
Penyelesaian
Untuk menyelesaikan isu ini, anda perlu memastikan pelayan menjana respons JSONP dengan betul. Ini bermakna membungkus data JSON di dalam panggilan fungsi dan memastikan kemasukan parameter panggil balik dalam rentetan pertanyaan.
Dalam Node.js Express
Dalam Node.js Ekspres, anda boleh menggunakan kaedah res.jsonp() untuk menjana respons JSONP:
app.get('/', (req, res) => { res.jsonp({ Name: 'Tom', Description: 'Hello it's me!' }); });
Sebagai alternatif, anda boleh menambah parameter padding dan panggil balik secara manual:
const callback = req.query.callback; const 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); }
Dalam jQuery
Di sisi pelanggan, anda boleh mengkonfigurasi permintaan AJAX anda untuk menggunakan JSONP dengan menyatakan pilihan dataType: 'jsonp':
$.ajax({ url: findUrl, type: 'get', dataType: 'jsonp', success: (data) => { // ... }, error: (jqXHR, textStatus, errorThrown) => { // ... } });
Kesimpulan
Dengan memastikan pelayan menjana respons JSONP dengan betul dan pelanggan mengkonfigurasi permintaan AJAXnya dengan sewajarnya, anda boleh mengelakkan ralat "JSON kolon token tidak dijangka selepas jQuery.ajax#get" dan berjaya mendapatkan data JSON daripada pelayan anda .
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Kolon Token Tidak Dijangka JSON selepas jQuery.ajax#get\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!