通过XHR上传的HTML5在Chrome中失败

时间:2011-07-21 14:21:41

标签: javascript html5 file-upload xmlhttprequest

我正在使用XHR上传一个在FF中效果很好但在Chrome中失败的文件。

抛出错误,表示Upload failed: 0,这意味着xhr.status返回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));
}

1 个答案:

答案 0 :(得分:1)

xhr.status == 0表示有some network error。但规格并未说明如何找出错误是什么。

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

如果失败,请检查服务器的错误日志。也许服务器端出了问题。