所以我注意到我今晚正在测试的网站上有一个错误。它发生在图像页面上,页面工作正常,我可以更改图像的状态(主要或次要)并删除它们,导航到其他页面等。
所以我导航的部分是(基本上,它抓取当前页面、请求的页面以及特定于该页面的任何表单数据,经过验证的服务器端)
...
var formData = $("#eventForm").serializeArray();
//testing bit for xhr happens here (explained later)
$.ajax({
url: "pageTemplates/createEvent.php",
type: "POST",
data: {page:page,formData:formData},
cache:false,
success: function(result) {
$(".Account-data").html(result);
}
})
...
但是一旦我上传了一张图片,我就无法导航到任何其他页面。图片上传位在这里:
...
var imgData = new FormData();
$.ajaxSetup({
data:{type:type}
})
imgData.append('imageFile',$("#imageFile")[0].files[0]);
$.ajax({
url: "pageTemplates/imageUpload.php",
type: "POST",
xhr: function() {
myXhr = $.ajaxSettings.xhr();
return myXhr;
},
data: imgData,
cache: false,
contentType: false,
processData: false,
success: function(result) {
$("#imagesData").append(result);
$("#imageFile").html("<input type='file' name='imageFile' id='imageFile' onchange='imageUpdate(this)' />");
}
});
...
我已经设法将问题追溯到设置 xhr,并且对 xhr 的测试表明即使在图像上传发生后它仍然存在。
有没有办法在图像上传完成后禁用 XHR?或者有什么方法可以取消它?还是我应该以完全不同的方式处理这个问题?