HTML5上传通过XHR在Chrome浏览器失败

HTML5 Upload via XHR fails in Chrome

本文关键字:Chrome 浏览器 失败 XHR HTML5      更新时间:2023-09-26

我使用XHR上传一个文件,它在FF中工作得很好,但在Chrome中失败。

抛出一个错误,它说Upload failed: 0,这意味着xhr。状态返回为0 -我不确定这是什么意思?无其他状态记录。

//Check if we have XHR / File support
if (typeof File != "undefined" && typeof (new XMLHttpRequest()).upload != "undefined")
{
    var xhr = new XMLHttpRequest();
    xhr.upload.onprogress = function(e){
        if (e.lengthComputable){
            uploadStarted = true;
            var loaded = (e.loaded / e.total) * 100;
            ShowProgress(loaded);
        }
    };
    xhr.onreadystatechange = function(){
        if (xhr.readyState == 4){
            if (xhr.status == 200){
                uploadComplete();
            } else {
                alert("Upload failed: " + xhr.status);
            }
            console.log("status",xhr.status);
        }
    };
    var formElement = document.getElementById("configForm");
    xhr.open("POST", $("#configForm").attr('action') , true);
    xhr.send(new FormData(formElement));
}

xhr.status == 0表示有网络错误。但是规格并没有说明如何找到错误是什么。

我建议将整个xhr结构记录到控制台(console.log(xhr))。也许其他字段中包含一些有价值的数据。

如果失败,请检查服务器的错误日志。可能是服务器端有问题