XMLHttpRequest文件上传返回500错误

时间:2016-11-23 18:22:24

标签: javascript ajax angular xmlhttprequest

我正在尝试使用XMLHttpRequest()上传文件,但是post请求返回500内部服务器错误。我确保文件参数是通过文件对象发送的,并且操作URL是正确的。我错过了什么吗?

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);
    });
}

2 个答案:

答案 0 :(得分:0)

500错误意味着请求到达目的地并且目的地出现问题。尝试检查目的地是否有错误。

答案 1 :(得分:-1)

也许你发错了请求?上次我遇到了同样的问题并且有一个解决方案:

Saving Blob as xlsx in Angular2