Сбой загрузки HTML5 через XHR в Chrome - PullRequest
2 голосов
/ 21 июля 2011

Я использую XHR для загрузки файла, который отлично работает в FF, но не работает в Chrome.

Выдается ошибка, которая говорит Upload failed: 0, что означает, что xhr.status возвращается как 0 - IЯ не уверен, что это значит?Никакой другой статус не записан.

//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 Ответ

1 голос
/ 21 июля 2011

xhr.status == 0 означает, что какая-то сетевая ошибка . Но в спецификациях не сказано, как можно узнать, в чем была ошибка.

Предлагаю записать всю структуру xhr на консоль (console.log(xhr)). Возможно, одно из других полей содержит некоторые ценные данные.

Если это не помогло, проверьте журналы ошибок сервера. Может быть, что-то не так на стороне сервера.

...