首页 > 有没有大神帮忙看看这段关于文件上传的代码

有没有大神帮忙看看这段关于文件上传的代码

export var file_upload = (file, path, success,error) => {
    var domain = NORMANDY_WEBCAM_MS_DOMAIN;
    var form = new FormData();
    //form.append("source", "park");
    form.append("file", file);

    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener("progress", (data) => {
        // 上传进度
    });
    xhr.addEventListener("load", (data) => {

    });
    xhr.addEventListener("error", (data) => {
        // 上传失败
    });
    xhr.addEventListener("abort", (data) => {
        // 中断上传
    });
    xhr.onreadystatechange = function(){
        if(xhr.readyState==4) {
            if(xhr.status==413){
                alert("上传资源文件太大,服务器无法保存!");
            }else if(xhr.status==422) {
                alert("参数错误,可能文件格式错误!");
            }else if(xhr.status==400){
                alert('文件格式错误!');
                error && error();
            }else if(xhr.status <200 || xhr.status >400){
                success && success();
                console.log('111')
            }else if(xhr.status ==500){
                error && error();
            }
            else{
                // 上传成功
                //var source_url = JSON.parse(xhr.responseText).source_url;
                //success && success();
            }
        }
    }
    xhr.open("POST", `${domain}${path}`);
    xhr.send(form);
}

我是这样调用的

file_upload(this.file_obj,'/blackwhitelist/importwhite', ()=> {
                console.log('成功导入文件!');
                this.getAllMembers();
            }, ()=>{
                console.log('文件格式错误')
            });

但是请求500报错的时候控制台显示'成功导入文件';
我这段代码哪里错了呀


因为:

//走到这一步的时候,就因为status > 400而执行success方法了
//压根儿不会走你下面那行xhr.status ==500
}else if(xhr.status <200 || xhr.status >400){
    success && success();
    console.log('111')
}
【热门文章】
【热门文章】