我让用户选择要上传的单个文件。但上传永远不会在一个非常奇怪的情况下完成。
工作用例:页面完成加载后,用户选择一个文件并上传,它总是上传。
不工作用例:页面完成加载后,用户会在屏幕上盯着一两分钟,然后选择要上传的文件,上传几乎永远不会完成。我们不知道凝视有多长时间,但通常会做2到5分钟。该问题仅出现在Windows 7计算机上的IE 11中。在同一台机器上,Chrome和Firefox工作正常。 IIS Web服务器不是负载平衡的,但它也发生在负载平衡环境中。当上传永远不会完成时,控制器期望POST永远不会收到请求,IIS日志也永远不会收到POST请求。
更新 我发现开发Web服务器是单个服务器,但它实际上是在负载平衡环境之后,因为我们的QA环境有两个Web服务器并且负载平衡。据说,出现问题是由负载均衡器引起的。因为如果文件按节点名称POST到服务器URL,则上载有效。但是如果POST到负载均衡器,则会失败。我会看看我的网络人员是否可以找到解决方案。我不相信这是代码问题,或者我错了吗?
var FormEdit = function () {
var that = {};
that.upload = function () {
var data = new FormData();
var fileInput = $('#fileInput')[0];
var file = fileInput.files[0];
data.append(file.name, file);
$.ajax({
type: 'post',
dataType: 'json',
url: url,
data: data,
processData: false,
contentType: false,
}).fail(function () {
}).then(function (data) {
}).always(function () {
});
};
};
答案 0 :(得分:0)
我解决了这个问题,但不认为这是最好的方式。
在我执行HTTP POST以上传文件之前,我执行HTTP GET,然后执行HTTP POST。到目前为止,它总是以这种方式工作。
我的网络人员说IE 11的连接超时为1分钟。如果连接超时,则您运气不好,但要再次为要上载的文件创建新连接。