我有一个非常奇怪的问题。
我有一个正常的ajax调用,可以将您从电脑中选择的头像上传到服务器..
这有时会起作用,有时候我可以在网下的萤火虫中看到,经过一段时间的加载后,它会被“中止”并标记为红色。
我甚至有一个ajaxstart ajaxend加载器图标,即使它被中止,图标也会一直显示。
为什么会发生这种情况,我该如何防止它中止?如果它中止了,我怎么能再次“再试一次?”为什么它甚至流产:S
我注意到它发生在更大的尺寸/尺寸文件上?在它请求的文件(fileupload.php)上我确实有一个检查器,如果它更大则回调错误。但我认为它甚至没有到达文件之前“滞后”并停止..
更新确认:当我尝试使用更大尺寸的ajax发送文件时会发生这种情况。
答案 0 :(得分:2)
您是如何通过Ajax发送文件的? Ajax不支持发送文件。
如果是jQuery控制台中的连接超时,它将以红色显示,并且将调用ajax请求的失败处理程序。
您可以处理您想要的任何条件。要删除timeout
问题,您可以向ajax请求添加属性timeout
。我认为默认值是30秒
$.ajax({
url : "",
data : {},
success : function(data, textStatus, XMLHttpRequest){
},
error: function(XMLHttpRequest, textStatus, errorThrown){
if(textStatus == "timeout"){
alert("timeout")
}
},
timeout : 600000
});
由于您使用的是ajaxfileupload,请尝试使用
$.ajaxFileUpload({
.....,
timeout: 60000,
error: function (data, status, e)
{
if(status == "timeout"){
alert("timeout")
}else{
alert(status)
}
}
})
并确保您的服务器中没有设置任何最大文件上传大小。
答案 1 :(得分:0)
它可能已中止,因为请求在客户端超时。增加jquery中的超时。