如何解决jquery“解析器错误”

时间:2013-12-20 08:39:05

标签: ajax wcf jquery wcf-rest

我正在尝试使用来自客户端脚本的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)错误提示消息 enter image description here

errorThrown: Error: jQuery1910367527295252279_1387528759305 was not called textStatus:parsererror

2)控制台错误

enter image description here

控制台错误json对象不正确,但我认为它是最新的。 任何帮助表示赞赏

2 个答案:

答案 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。