我在我的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"));
});
最佳答案 经过互联网的痛苦挖掘后,我终于得到了我的解决方案,非常乐意分享它:
jQuery表单插件根本没有问题.
问题是错误的IE 8无法很好地处理Json回调.即使你指定类型为“application / json”
解决方案:将内容类型从“application / json”更改为“text / plain”
在MVC JsonResult中
return Json(newImage, "text/plain", JsonRequestBehavior.AllowGet);