我有一个不寻常的问题,只有IE才会出现。
我有一个文件上传UI,其中on-change事件连接到一个Angular Directive,它调用web api服务,因此
element.on('change', event => {
scope.onChange();
if (event.target.files.length > 0) {
var fd = new FormData();
fd.append('file', event.target.files[0]);
$http.post('/api/upload', fd, {
transformRequest: angular.identity,
headers: { 'Content-Type': undefined },
})
.success(data => {
scope.onSuccess({ data: data });
})
.error(data => {
scope.onError({ data: data });
});
}
});
这适用于Firefox和Chrome。它也适用于IE,除非我回到页面然后等待60秒(如果我等待不到60秒,则工作正常)。
如果我等待60秒仍然会触发onchange事件并尝试发布,但是,当请求为空时,永远不会到达API服务。这意味着xmlhttprequest只会挂起:
有什么想法吗?
答案 0 :(得分:4)
虽然以上修复了您将其设置为一段时间的问题,但它确实意味着对注册表进行了更改。这也是一个软糖,而不是解决问题的实际方法。
我们的问题是该帖子未经过正确认证,从未回来。
在POST之前执行GET会强制进行身份验证并解决问题
的问题的信息