我在MVC项目中使用jQuery表单插件进行图片上传。
图像上传在Chrome和Firefox中非常完美,但是当涉及到IE 8时。
与Chrome不同,它不是返回后期提交回调消耗的json数据,而是在IE 8中返回一个txt文件并询问您是否要下载。在txt文件中,它是json数据。
无法弄清楚我哪里做错了,有什么想法吗?
提前感谢。
代码放在一个单独的js文件中: 的 upload.js
(function ($) {
ImageUploader = function (o) {
var options = {
success: showResponse, // post-submit callback
url: "/Image/ImageUpload", // override for form's 'action' attribute
type: "post", // 'get' or 'post', override for form's 'method' attribute
dataType: 'json', // 'xml', 'script', or 'json' (expected server response type)
clearForm: true // clear all form fields after successful submit
};
o.ajaxForm(options);
$("input#file").change(function () {
o.submit();
});
// post-submit callback
function showResponse(responseText, statusText, xhr, $form) {
....
}
};
})(jQuery);
页面视图:
$(document).ready(function () {
ImageUploader($("#ajaxUploadForm"));
});
答案 0 :(得分:2)
经过互联网的痛苦挖掘后,我终于得到了我的解决方案,非常乐意分享它:
jQuery Form Plugin完全没有问题。
问题是错误的IE 8无法很好地处理Json回调。即使你将类型指定为“application / json”
解决方案:将内容类型从“application / json”更改为“text / plain” 在MVC JsonResult
return Json(newImage, "text/plain", JsonRequestBehavior.AllowGet);