我正在尝试处理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 来处理这个问题。
有人可以在这里帮助我吗?
谢谢
问题
它返回被视为字符串并使用 JSON 编码的 JSONP 响应。
换句话说,来自服务器的答案是不正确的。
溶液
而不是:
"alertResponse({'status':'OK'})"
它应该是:
alertResponse({'status':'OK'})
"为什么?"部分
JSONP的重点是使用<script>
标签包含它,因此返回的响应必须是正确的JavaScript,调用一些应该处理检索数据的回调函数(通常由调用远程服务器期间的GET参数之一指定)。