2016-11-23 138 views
-1

我想使用XMLHttpRequest()上傳文件,但發佈請求返回500內部服務器錯誤。我已經確定文件參數是通過文件對象發送的,並且操作URL是正確的。我錯過了什麼嗎?XMLHttpRequest文件上傳返回500錯誤

HTML:

<input type="file" class="form-control" name="documents" (change)="onFileUploadChange($event)"> 

組件:

onFileUploadChange(_event: any) { 
    let file = _event.srcElement.files; 
    let postData: any = null; 
    this._fileUploadService.uploadFile(this.uploadURL, file); 
} 

服務:

uploadFile(_url:string,_file:File):Promise<any> { 
    return new Promise((resolve, reject) => { 

     var xhr:XMLHttpRequest = new XMLHttpRequest(); 

     console.log(_file); 
     console.log(_file[0].name); 

     xhr.onreadystatechange =() => { 
      if (xhr.readyState === 4) { 
       if (xhr.status === 200) { 
        // ... 
       } else if (xhr.status === 500) { 
        // ... 
       } 
       else { 
        // ... 
       } 
      } 
     }; 

     var formData = new FormData(); 
     formData.append('file', _file[0], _file[0].name); 

     xhr.open('POST', _url, true); 
     xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
     xhr.setRequestHeader('Content-Type','multipart/form-data'); 


     xhr.send(formData); 
    }); 
} 
+0

你有一個內部服務器錯誤。調試您的服務器端代碼以找出問題所在。如果請求有問題,那會告訴你什麼。 – Quentin

+0

解決。這是一個服務器錯誤。 – skyscript

回答

0

500錯誤意味着請求到了目的地並且有在目的地的問題。嘗試檢查目標是否有錯誤。