0

$.getJSON() を使用するとエラーが発生し続けます。私はJSONPを使用しています。コードは次のとおりです。

$.getJSON('http://s3.amazonaws.com/eloqu/TestFile.js?callback=?', function(data){
    console.log(data);
})
.fail(function( jqxhr, textStatus, error ) {
    console.log( "Request Failed: " + textStatus + ', ' + error);
});

私が得るのは「パーサーエラー」だけです。URL の末尾を callback=mycallback に変更すると、タイプなしで「エラー」が返されます。

4

2 に答える 2

1

これはちょっと異常な状況です...

これが機能するフィドルです..mycallback関数を定義する必要がありました:

http://jsfiddle.net/xtKAb/

$(document).ready(function () {
    $.getJSON('http://s3.amazonaws.com/eloqu/TestFile.js?callback=?');
});

function mycallback(data) {
    console.log(data);
}

問題は、リモートファイルが静的であることだと思います。通常、必要なコールバックを送信すると、リモート サービスは指定したコールバックでデータをラップします。jQuery が行う実際のリクエストの例を次に示します。

http://s3.amazonaws.com/eloqu/TestFile.js?callback=jQuery20209767435337416828_1376014401926&_=1376014401927

したがって、jQuery はコールバックが であることを期待していますが、そうはなりjQuery20209767435337416828_1376014401926()ません (リモート ファイルが静的であるため)。データは jQuery が予期しているコールバックに到達しないため、未定義のオブジェクトを json で解析しようとする可能性が高く、解析エラーが発生します。

于 2013-08-09T02:18:22.790 に答える
0

リターンは次のようになります。

mycallback({ "test": "variable", "test2": "variable2" })

有効な json は次のようになります。

{ "test": "variable", "test2": "variable2" }

有効な json は、配列記号 [ またはオブジェクト記号 { でのみ開始できます。http://jsonlint.com で任意の json 文字列を検証できます

于 2013-08-09T00:23:00.033 に答える