ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery.ajax#get を使用して JSONP リクエストの「予期しないトークン コロン」エラーを解決する方法

jQuery.ajax#get を使用して JSONP リクエストの「予期しないトークン コロン」エラーを解決する方法

Linda Hamilton
リリース: 2024-10-19 22:54:02
オリジナル
1096 人が閲覧しました

How to Resolve

予期しないトークン コロン: jQuery.ajax#get での JSONP エラーの解決

jQuery.ajax で「予期しないトークン コロン」エラーが発生した場合#get では、JSONP (パディング付き JSON) リクエストの性質を理解することが重要です。 JSONP には、クライアント側のグローバル JavaScript 関数呼び出しに JSON データを送り返すことが含まれます。

JSONP をサポートするには、サーバーは応答に「パディング」を含める必要があります。 「パディング」は、コールバック関数名の後にかっこで囲まれた JSON データで構成されます。

jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})
ログイン後にコピー

この例では、コールバック関数名は jQuery111108398571682628244_1403193212453 です。このエラーは、JavaScript が JSONP を JavaScript として解析するために発生します。ここで、{...} もブロックを表します。

このエラーを修正するには、サーバーは応答に「パディング」を含める必要があります。さらに、jQuery には通常、関数の名前を含むコールバック クエリ文字列パラメータが含まれます。これに対応するために、サーバー コードは条件ステートメントを使用してコールバック パラメーターをチェックし、それに応じて応答を送信できます。

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);
}
ログイン後にコピー

あるいは、ExpressJS はこの条件をすでに処理する res.jsonp() メソッドを提供します。 JSONP 応答を返しやすくします:

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

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});
ログイン後にコピー

以上がjQuery.ajax#get を使用して JSONP リクエストの「予期しないトークン コロン」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート