我使用 Jquery 进行 Ajax 调用,如下所示:
$.ajax({
type: "GET",
url: webMethod,
data: parameters,
dataType: "jsonp",
success: function(msg) {
XXXX(msg.d);
},
error: function(e) {
MessageBox("error","An error occured while fetching data.Please try again:<br>"+ e.statusText);
}
});
调用后,我收到 SyntaxError: Parse 错误消息:
使用验证器检查返回的 Jsonp 字符串,如果发现一些非常奇怪的东西。回调可以在字符串的开头和字符串内找到,例如
jQuery171011899920250289142_1333375884404({"d":{"__type":"WebServices.XXXXXXXX","Status":2,.....jQuery171011899920250289142_1333375884404("Description":"XXXXXXXXXXXXXXXXXX",......
注意,字符串内发现的非法回调方法字符串与json字符串外的非法回调方法字符串类似。 我正在使用jquery 1.7。行为与 1.4 中相同 是什么导致回调方法字符串嵌入到 JSON 字符串中?
最佳答案
JSONP 返回值的内容来自您的服务器。我建议您查看发送到服务器的完整 URL,并确保 URL 参数符合您的预期。然后,查看服务器是否正在执行其应有的操作。第一个包装返回 JSON 的 jQuery171011899920250289142_1333375884404()
预计用于 JSONP 响应。 JSONP 响应中的另一个必须由您的服务器放置在那里,因此这是要查看的地方。
关于JQuery Ajax 调用在返回的 JSON 字符串中添加回调方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9978599/