我创建了一个上传图片以供进一步处理的应用程序。一切正常,除了上传进度条。
function upload (fData) {
$.ajax({
url: '@Url.Action("UploadFile", "Home")',
type: 'POST',
mimeType: 'multipart/form-data',
headers: { '__RequestVerificationToken': $("input[name=__RequestVerificationToken]").val() },
data: fData,
contentType: false,
processData: false,
xhr: function () {
var xhr = $.ajaxSettings.xhr();
xhr.upload.onprogress = function (evt) {
uploadProgress = evt.loaded / evt.total * 100;
$(bar).css('width', uploadProgress + '%');complete');
};
return xhr;
}
})
实际上,如果我使用chrome限制功能,进度计算可以正常工作。上传完成后,服务器会执行一些操作并返回响应。一切都按预期工作。
没有限制,上传即刻完成......至少它似乎立即完成。我可以使用wireshark跟踪上传或只是调试服务器代码。数据不存在,但加载的值立即= 总值。我使用Edge有相同的行为。
我认为同样的问题,但有不同的设置被描述为here。