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!