3

Bing の json リクエスト (マップではなく bing 検索) に苦労していると、「ラベルが無効です」というエラーが返されます

私のクエリのURLは次のとおりです。

var bingurl="http://api.search.live.net/json.aspx?Appid=##APIKEY##&query=Honda&sources=web";


 $.ajax({
            type: "GET",
            url: bingurl,
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp",
            success: function(data) {

                $callBack(data);
            },
            error: function(msg) {
                alert("error" + msg);
            }
        });

Firebug は「無効なラベル」を報告し、json 応答をダンプします。

何が悪いのかわからない?助けていただければ幸いです。

4

2 に答える 2

7

投稿した Bing API の URL は JSONP ではなく、プレーンな JSON です。

JSONP は生の JavaScript として解釈されます。この場合、JSON オブジェクトの{"something": ...構文はオブジェクト リテラルではなく、名前に引用符が含まれるラベルを持つブロック ステートメントです (したがって、無効になります)。

私が理解しているように、Bing から JSONP が必要な場合は、パラメーター...&JsonType=callback&JsonCallback=(グローバル コールバック関数の名前) を渡すことによってそれを伝える必要があります。

(どうdata: "{}"なるかはわかりませんが、何も良いとは思いません。)

于 2010-05-13T20:00:08.150 に答える
4

物事を最新の状態に保つという精神で、新しいBing REST APIjsonpをサポートしているので、「callback」パラメーターが「jsonp」であることを確認する必要があります。jQueryでは、$。ajax()呼び出しのjsonp属性を「jsonp」に変更するだけで、これが機能します。

$.ajax({
    url: 'http://some.domain.com',
    dataType: 'jsonp',
    jsonp: 'jsonp'
});`

于 2011-03-16T21:24:11.330 に答える