Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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 处理AJAX错误(本机JS)_Javascript_Ajax - Fatal编程技术网

Javascript 处理AJAX错误(本机JS)

Javascript 处理AJAX错误(本机JS),javascript,ajax,Javascript,Ajax,我试图用下面的代码处理AJAX错误,但它不起作用 function ajaxPost(url, data, success, error) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status === 200) { if (ty

我试图用下面的代码处理AJAX错误,但它不起作用

function ajaxPost(url, data, success, error) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status === 200) {
            if (typeof success === "function") {
                success(xmlhttp.responseText);
            }
        }else if([404, 500 , 503, 504 ].indexOf(xmlhttp.status) > -1){
            if(typeof error === "function"){
                error();    
            }
        }
    }
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
    xmlhttp.send(JSON.stringify(data));
}
我是否缺少
[404500503504]
中的任何其他状态代码?我不是在重新发明轮子,我已经使用本机JavaScript对整个DOM进行了编程,不想只为AJAX包含80KB的文件。请帮我做这个

上述函数已成功将数据发布到服务器,但在服务器不可用时未能引发错误。请帮我处理这个问题。

//试试这个代码
          // try this code

          xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState === 4) {

                        var resp=eval('('+xmlhttp.responseText+')');


                        if( xmlhttp.status == 200 ) {

                            // success

                        } else if( xmlhttp.status >= 500 ) {

                            // internal server error

                        } else if ( xmlhttp.status >= 402 && xmlhttp.status <= 420 ) {

                           // error

                        } else if( xmlhttp.status == 400 || xmlhttp.status == 401 ) {

                           // bad request & unauthorized error

                        }

                    }
                };
xmlhttp.onreadystatechange=函数(){ if(xmlhttp.readyState==4){ var resp=eval('('+xmlhttp.responseText+'); if(xmlhttp.status==200){ //成功 }否则如果(xmlhttp.status>=500){ //内部服务器错误 }else if(xmlhttp.status>=402&&xmlhttp.status
//请尝试此代码
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4){
var resp=eval('('+xmlhttp.responseText+');
if(xmlhttp.status==200){
//成功
}否则如果(xmlhttp.status>=500){
//内部服务器错误

}否则,如果(xmlhttp.status>=402&&xmlhttp.status,则始终可以检查任何不成功的内容,例如:

function ajaxPost(url, data, success, error) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status === 200) {
            if (typeof success === "function") {
                success(xmlhttp.responseText);
            }
        }else if(typeof error === "function" && (xmlhttp.status > 299 || xmlhttp.status < 200)){
            error();    
        }
    }
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
    xmlhttp.send(JSON.stringify(data));
}
函数ajaxPost(url、数据、成功、错误){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
如果(成功类型==“函数”){
成功(xmlhttp.responseText);
}
}else if(typeof error==“function”&(xmlhttp.status>299 | | xmlhttp.status<200)){
错误();
}
}
open(“POST”,url,true);
setRequestHeader('Content-Type','application/json;charset=UTF-8');
send(JSON.stringify(data));
}

您可以随时检查任何不成功的内容,例如:

function ajaxPost(url, data, success, error) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status === 200) {
            if (typeof success === "function") {
                success(xmlhttp.responseText);
            }
        }else if(typeof error === "function" && (xmlhttp.status > 299 || xmlhttp.status < 200)){
            error();    
        }
    }
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
    xmlhttp.send(JSON.stringify(data));
}
函数ajaxPost(url、数据、成功、错误){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
如果(成功类型==“函数”){
成功(xmlhttp.responseText);
}
}else if(typeof error==“function”&(xmlhttp.status>299 | | xmlhttp.status<200)){
错误();
}
}
open(“POST”,url,true);
setRequestHeader('Content-Type','application/json;charset=UTF-8');
send(JSON.stringify(data));
}
console.log(xmlhttp.status);
console.log(xmlhttp.status);