我正在尝试使用来自客户端脚本的dataType JSONP进行 ajax 调用,该服务uri属于本地托管的restful wcf服务。
以下是我的客户端脚本:
function callback() {
alert("callback");
}
$.ajax({
url: "http://localhost:999/Service1.svc/Get/rajesh",
// the name of the callback parameter
jsonp: "callback",
// tell jQuery we're expecting JSONP
dataType: "jsonp",
// work with the response
success: function (response) {
console.log(response); // server response
},
error: function ( jqXHR, textStatus, errorThrown) {
alert("errorThrown: " + errorThrown + " textStatus:" + textStatus);
}
});
我得到以下错误:
1)错误提示消息
errorThrown: Error: jQuery1910367527295252279_1387528759305 was not called textStatus:parsererror
2)控制台错误
控制台错误json对象不正确,但我认为它是最新的。 任何帮助表示赞赏
答案 0 :(得分:3)
从错误中看,您的服务器正在使用JSON而不是JSONP进行回复,因为错误是引用:
{"GetEmployeeResult":"success"}
...这是JSON,但JSONP响应看起来像:
jQuery34978249823_23049820394({"GetEmployeeResult":"success"})
...函数名jQuery34978249823_23049820394
来自请求中的回调参数(并且每次都会变化)。
要更正它,让服务器返回JSONP,或更改$.ajax
调用以使用JSON(假设SOP不是问题)。
答案 1 :(得分:0)
见答案:
How to natively enable JSONP for existing WCF service?
寻求可能的解决方案。听起来你需要重新配置你的wcf以返回JSONP而不是JSON。