我们有一个使用 javascript 的 XMLHttpRequest 上传文件的跨域进程(它允许进度事件向用户显示进度条),在 web.config 中设置所需的配置后,此过程可以正常工作:
<httpProtocol allowKeepAlive="true">
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
</httpProtocol>
问题是在尝试上传大文件(超过100 MB)时,请求需要很长时间(超过1分钟),XMLHttpRequest捕获失败事件,响应如下(如google chrome显示的那样)在控制台中):
XMLHttpRequest cannot load http://oursite.net/Controller/UploadFile. Origin http://secondsite.net is not allowed by Access-Control-Allow-Origin.
但是经过服务器端的测试,文件上传保存了,所以Action完全是在服务器上执行的!!
我们认为这个问题是由诸如超时之类的东西引起的(因为当请求没有经过 1 分钟时不会出现这个问题)。
注意:服务器端是一个 Asp.net MVC 项目。任何想法?