Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript http错误上的JSONP responseText_Javascript_Jquery_Ajax_Jsonp - Fatal编程技术网

Javascript http错误上的JSONP responseText

Javascript http错误上的JSONP responseText,javascript,jquery,ajax,jsonp,Javascript,Jquery,Ajax,Jsonp,我使用jQuery的JSONPAJAX请求发送一些数据。当由于某种原因无法处理此数据时,我希望返回http状态不是200的结果。通过这种方式,我可以使用我的访问日志解析它们以获取统计信息 不幸的是,当状态代码不是200时,我没有得到任何响应,尽管jQuery回调在响应主体中(当我检查firebug时)。有没有办法捕捉到回应 $.ajax({ 键入:“GET”, url:{{sendMsgUrl}}}, async:false, 数据:{'form':formData}, 数据类型:“jsonp”

我使用jQuery的JSONPAJAX请求发送一些数据。当由于某种原因无法处理此数据时,我希望返回http状态不是200的结果。通过这种方式,我可以使用我的访问日志解析它们以获取统计信息

不幸的是,当状态代码不是200时,我没有得到任何响应,尽管jQuery回调在响应主体中(当我检查firebug时)。有没有办法捕捉到回应

$.ajax({
键入:“GET”,
url:{{sendMsgUrl}}},
async:false,
数据:{'form':formData},
数据类型:“jsonp”,
成功:函数(json2){
如果(json2.status=='ok')
//做事
否则{
//输出误差
};
},
错误:函数(xhr、状态、错误){
//这不起作用:它永远不会到达这里
警报(xhr.responseText);
var json2=eval(“+xhr.responseText+”);
}
}).失败(功能(jqXhr){
//也从来没有到过这里
警报(“状态”+jqXhr.responseJSON);
});

否。JSONP不使用XHR。它将
元素注入页面

从理论上讲,您可能能够找到该脚本的
错误
事件处理程序,但它不会为跨源请求触发(除非您发出跨源请求,否则使用JSONP没有多大意义)


在使用JSONP时,您永远不会在任何事件处理程序中获得HTTP响应头的任何详细信息。

我在文档中没有看到
jqXhr
有字段
responseJSON
您能分享您得到的错误吗这也是我的结论。我确实在做一个跨来源的请求。因此,我现在绕过这个问题的解决方案是在服务器脚本返回错误时返回代码200。当一切正常时,返回202(已接受)。jsonp现在运行正常,我仍然可以改变我的访问日志。这可能不是http状态代码的确切方式,但对于我的应用程序来说,这是可行的。