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 参数之一指定),该函数应该处理检索到的数据

于 2012-06-18T19:22:45.030 回答