我正在使用这个插件(只是基本版本),并且正在利用所有简洁的功能进行进度更新,以使用我自己的 UI(使用 Knockout.js 和 Twitter Bootstrap)。这是上下文的一些代码片段:
// The file is sent to an ASP.NET MVC Web Api service to do all the business logic/DB stuff
uploadUrl = http://web.api.url/?apikey=key
$("#fileUpload" + "@index").fileupload({
headers: {
'Authorization': "@Html.AccessToken()",
'Accept': $.support.ajax ? "application/json" : "text/plain"
},
url: uploadUrl,
add: function (e, data) {
$.each(data.files, function (index, file) {
// add to KO viewmodel
});
data.submit();
},
fail: function (e, data) {
var error = data.errorThrown;
var text = data.textStatus;
},
done: function (e, data) {
// do some more viewmodel operations
},
progress: function (e, data) {
var progressPercentage = parseInt(data.loaded / data.total * 100, 10);
// update viewmodel
}
});
该#fileUpload<Index>
元素是文件输入
这在 Chrome、FF 和 Safari 中效果很好,但在 IE 中却不行(出乎意料)。尝试从我的文件输入中选择一个文件时,我得到一个非常奇怪的响应 - 浏览器打开一个下载对话框?!
Do you want to open or save ?apikey=key (61 bytes) from webapiserver?
我尝试在我的 fileupload 事件侦听器中使用带有断点的 IE 脚本调试器,但它甚至从来没有进入过它。我在我的研究中看到了各种帖子和文章,表明应用程序/json 的接受类型会搞砸 IE,所以我的代码中有一个条件来尝试处理它。
有什么我想念的吗?