Nes*_*hta 12 javascript jquery internet-explorer file-upload blueimp
我只在IE <10中遇到这样的问题.我的消息来源:
$("input:file#upload-photo").fileupload({
enctype: "multipart/form-data",
url: $("input:file#upload-photo").attr("url"),
autoUpload: true,
send: function() {
spinner.spin(target);
},
done: function (e, data) {
spinner.spin(false);
var errors = data.result.Errors;
if (errors != null && errors.length > 0) {
for (var i = 0; i < errors.length; i++) {
var ul = $("<ul>").html("<li>" + errors[i] + "</li>");
$('#upload_photo_errors').html(ul);
}
} else {
$(".profile-photo").attr("src", data.result.Data.AvatarUrl);
}
},
error: function() {
spinner.spin(false);
}
});
Run Code Online (Sandbox Code Playgroud)
调用'send'处理程序,'error'处理程序也是如此.
我在Fiddler中发现了我的请求.它没有Content-Type和任何数据:
POST http://172.20.40.45/site/api/Users/Avatar HTTP/1.1
X-Requested-With: XMLHttpRequest
Accept: */*
Referer: http://172.20.40.45/site/Profile/Edit
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Host: 172.20.40.45
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Pragma: no-cache
Cookie: ...
Run Code Online (Sandbox Code Playgroud)
我试图在http://blueimp.github.io/jQuery-File-Upload/上检查上传过程.它在IE9中工作正常.为什么它在我的情况下不起作用?
Nes*_*hta 20
我已经解决了这个问题.起初我用multipart/form-data有效载荷解决了这个问题.IE9不支持XHR文件上传.因此我添加了下一个脚本:
<script src="~/Scripts/jquery.iframe-transport.js"></script>
Run Code Online (Sandbox Code Playgroud)
另外我还为IE9添加了另一个脚本:
<!--[if lt IE 10]>
<script src="~/Scripts/jquery.xdr-transport.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
现在浏览器上传文件.但我遇到了另一个问题.这次我遇到了这样的问题.我使用Web API,我找到了这个帮助我的解决方案.
但是现在调用'error'处理程序而不是'done'.要解决此问题,我们必须将dataType设置为'json'.最终版本看起来如此:
$("input:file#upload-photo").fileupload({
dataType: "json",
url: $("input:file#upload-photo").attr("url"),
autoUpload: true,
send: function() {
spinner.spin(target);
},
done: function (e, data) {
var errors = data.result.Errors;
if (errors && errors.length) {
var items = $.map(errors, function (i, error) {
return $("<li>").text(error);
});
$("<ul>").append(items).appendTo('#upload_photo_errors');
} else {
$(".profile-photo").attr("src", data.result.Data.AvatarUrl);
}
},
always: function() {
spinner.spin(false);
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20199 次 |
最近记录: |