如何阅读这个奇怪的服务器响应并获得“成功”密钥?

时间:2012-10-23 10:27:39

标签: javascript jquery ajax object

我正在使用这个jQuery basic ajax reader:

$.ajax({
    url: url,
    dataType: 'jsonp',
    success: function (data) {
        console.log('data is', data);
    }
});

我得到的完整服务器响应是:

jQuery17107194540228229016_1350987657731({"action":"", "type":"", "callerId":""},
 {"errorCode":0,"errorDescription":"OK","success":true,"payload":null});

但是,当我尝试使用console.log('data is,data);输出时,我得到的输出是:

data is  Object {action: "", type: "", callerId: ""} 

如何收到服务器响应的其他部分?

ie:告诉我success:true的部分:

{"errorCode":0,"errorDescription":"OK","success":true,"payload":null}

2 个答案:

答案 0 :(得分:3)

试试这个,我不知道它是否会有所帮助:

success:function(data, second){
                       console.log('data is',data, 'second is ',second);

正如几位人士指出的那样,只有在请求成功的情况下,才会返回成功函数。但是如果你有一些特殊的原因想要使用这些返回值,你可以添加一个额外的参数(我想,仍然没有自己测试过)。

答案 1 :(得分:1)

即使响应是404,来自jquery请求的成功回调也将始终成功。只要服务器可以访问,这总是成功的。仅当服务器无法访问或请求因错误回调被触发的方式丢失时。从这个角度来看,你总是必须分析输出以查看结果是否是所需的(或检查响应的状态代码。如果它是40x,那么从您的角度来看可能是错误的。)