2016-11-23 247 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错误意味着请求到了目的地并且有在目的地的问题。尝试检查目标是否有错误。