Javascript CORS上传总是以错误事件结束

Javascript CORS upload always finishing with an error event

本文关键字:错误 事件 结束 CORS Javascript      更新时间:2023-09-26

我需要上传一个文件到服务器,遵循CORS规范与javascript

在互联网上有很多例子,事实上一切都很好(文件上传),但最后触发的事件是一个错误。

如果我看目标,XMLHttpRequest结束了readyState=4。根据规格,这是

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

问题是,虽然我将服务器设置为在OPTIONS请求中发回适当的标头,但我没有在实际的POST中发送Access-Control-Allow-Origin

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