2013-05-07 32 views
0

我需要上傳文件到服務器,遵循CORS規範與javascriptJavascript CORS上傳始終以錯誤事件結束

互聯網上有很多例子,事實上一切正常(文件上傳),但最後觸發的事件是一個錯誤。

如果我看目標,XMLHttpRequestreadyState=4 finsihed。根據規範,這是

DONE: The data transfer has been completed or something went wrong during the transfer (e.g. infinite redirects). 

source http://www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-readystate 

status總是0但文件做被上傳,進度正常工作,服務器返回一個201 CREATED

一段代碼:

var fd = new FormData(document.getElementById('viForm')); 
var xhr = new XMLHttpRequest(); 
xhr.upload.addEventListener("progress", uploadProgress, false); 
xhr.addEventListener("load", uploadComplete, false); 
xhr.addEventListener("error", uploadFailed, false); 
xhr.addEventListener("abort", uploadCanceled, false); 
xhr.open("POST", submitAddress); 
xhr.setRequestHeader('X-Auth-Token', token); 
xhr.send(fd); 


function uploadFailed(e) { console.log(e); } 

回答

0

的問題是,雖然我設置服務器在OPTIONS請求發送回相應的標頭,我不發送實際的POSTAccess-Control-Allow-Origin

xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); 
+0

對我來說這似乎很奇怪,因爲據我所知,服務器是負責返回此「Access-Control-Allow-Origin」標頭的負責人。我想你實際上在服務器端改變了其他的東西 – reddy 2015-11-10 13:43:18