2011-07-21 17 views
2

XHRを使用して、FFでうまくいくがChromeで失敗するファイルをアップロードしています。HTML5 XHR経由でのアップロードが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

xhr.status == 0は、some network errorを意味する。しかし、この仕様では、どのようにエラーが発生しているかを知ることはできません。

xhr構造全体をコンソール(console.log(xhr))に記録することをお勧めします。たぶん、他のフィールドの1つに貴重なデータが含まれているかもしれません。

これが失敗した場合は、サーバーのエラーログを確認してください。サーバ側で何かが間違っている可能性があります。

+0

お世話になりました。間違ったサーバー側は間違いありません。これはiframeを使ってコンテンツを投稿すると失敗しますので、Chromeに関連するものと思われます。 – Chris

関連する問題