jQuery.ajax#get の「予期しないトークン コロン JSON」エラーへの対処
最小限の API から JSON データを取得しようとした場合Node.js で作成した場合、Chrome で「予期しないトークン:」エラーが発生しました。このエラーは通常、サーバーからの予想される JSON 応答と実際の JSON 応答が一致しないために発生します。
jQuery.ajax#get を使用して AJAX 呼び出しを行い、dataType を「jsonp」として指定する場合、サーバーの応答にはJSONP リクエストをサポートするための「パディング」(P)。 JSONP は、JSON データを関数呼び出しでラップすることでクロスドメイン リクエストを可能にする技術です。
この問題を解決するには、サーバー側のコードを変更して応答にパディングを含める必要があります。 Node.js コードに次の行を追加します。
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); }
または、Express.js を使用している場合は、パディングの追加を自動的に処理する res.jsonp() メソッドを利用できます。 :
app.get( '/', function( req, res ) { console.log( 'req received' ); res.jsonp({ Name : "Tom", Description : "Hello it's me!" }); });
これらの変更により、サーバーは関数呼び出しにラップされた JSONP 応答を送信します。これは、「予期しないトークン」エラーが発生することなく jQuery.ajax#get によって解析できます。
以上がjQuery.ajax#get の「予期しないトークン コロン JSON」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。