2

JSONPコールバックを処理しようとしています。次のJavaScriptがあります

var URL = "http://localhost:8000/returndata?s=testjsonp";
function alertResponse(data, status) {
    alert("data: " + data + ", status: " + status);
}

$.ajax({
    url: URL,
    dataType: 'jsonp',
    jsonpCallback: "alertResponse",
    complete: alertResponse
});

サーバーへの応答が行われると、次のJSONが返されます。二重引用符に注意してください。

"alertResponse({'status':'OK'})"

JavaScriptでこれをどのように処理できるかわかりません。

誰かがここで私を助けてくれますか?

ありがとう

4

1 に答える 1

3

問題

文字列として扱われ、JSONを使用してエンコードされたJSONP応答を返します。

つまり、サーバーからの回答が正しくありません

解決

それ以外の:

"alertResponse({'status':'OK'})"

そのはず:

alertResponse({'status':'OK'})

「なぜ?」部

JSONPのポイントは、タグを使用してそれを含めることです<script>。したがって、返される応答は正しいJavaScriptである必要があり、取得したデータを処理することになっているコールバック関数(通常はリモートサーバーの呼び出し中にGETパラメーターの1つによって指定されます)を呼び出します。

于 2012-06-18T19:22:45.030 に答える