我希望能够将404错误与500错误区分开来。 在我的应用程序中,我想检查是否后端站点 返回错误500 或者如果客户端没有互联网,则返回404错误
到目前为止,我接到了这样的电话$.ajax({
type: "POST",
url: _this.$path_server,
dataType: 'text',
crossDomain: true,
contentType: 'application/json; charset=utf-8',
async: true,
headers: { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' },
data: JSON.stringify(arData),
cache:false,
timeout:3000,
success:function(data,status,text){
console.log("s data "+data);
console.log("s status "+status);
console.log(text);
},
error:function(request, status, error){
console.log("e request ");
console.log(request);
console.log("e status "+status);
console.log("e error "+error);
},
fail:function(jqXHR){
if(jqXHR.status==500 || jqXHR.status==0){
// internal server error or internet connection broke
console.log("fail")
}
},
getResponseHeader:function(e){
console.log("get getResponseHeader");
console.log(e)
},
getAllResponseHeaders:function(){
console.log("get getallResponseHeader");
},
statusCode:function(e) {
console.log("statusCode func");
console.log(e)
}
});
其中_this。$ path_server是一个包含php页面的链接 此
<?php
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');
$arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
如果我断开我的互联网连接,我会从控制台获得此结果
jquery-2.0.2.min.js:6 POST [server] /call.php net :: ERR_CONNECTION_RESETx.support.cors.e.crossDomain.send @jquery-2.0.2.min.js:6x.extend .ajax @jquery-2.0.2.min.js:e request Object {readyState:4,responseText:undefined,status:404,statusText:“error”} e status error e error
哪个好,没有连接就像php页面不存在,所以错误404就是。
但如果我故意在php页面上创建错误,为了创建500错误,我有这个结果
jquery-2.0.2.min.js:6 POST [server] /call.php x.support.cors.e.crossDomain.send @jquery-2.0.2.min.js:6x.extend.ajax @ jQuery的2.0.2.min.js XMLHttpRequest无法加载[server] /call.php。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost”访问。响应的HTTP状态代码为500。 请求 对象{readyState:4,responseText:undefined,status:404,statusText:“error”} e状态错误 错误
从那时起,500错误以某种方式转换为404错误,请参见状态404.并且我所做的任何其他错误处理(失败甚至状态错误)都没有触发500错误
所以我无法区分这两个错误,有什么帮助吗? 感谢