我使用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字符串中?
答案 0 :(得分:0)
JSONP返回值的内容来自您的服务器。我建议您查看发送到服务器的完整URL,并确保URL参数符合您的预期。然后,看看服务器是否正在做它应该做的事情。包含返回的JSON的第一个jQuery171011899920250289142_1333375884404()
是JSONP响应的预期。 JSONP响应中的另一个必须由服务器放在那里,这样才能看到它。