Asp.net mvc 2 使用Jquery表单插件上载图像在IE8中不起作用
我在MVC项目中使用jQuery表单插件进行图像上传 图像上传在Chrome和firefox中工作得非常完美,但在IE 8中却很完美 与Chrome不同,在IE 8中,它返回一个txt文件并询问您是否要下载,而不是返回json数据(稍后由提交后回调使用)。在txt文件中,它是json数据 不知道我哪里做错了,有什么想法吗 提前谢谢 代码放在单独的js文件中: upload.jsAsp.net mvc 2 使用Jquery表单插件上载图像在IE8中不起作用,asp.net-mvc-2,file-upload,jquery,compatibility,Asp.net Mvc 2,File Upload,Jquery,Compatibility,我在MVC项目中使用jQuery表单插件进行图像上传 图像上传在Chrome和firefox中工作得非常完美,但在IE 8中却很完美 与Chrome不同,在IE 8中,它返回一个txt文件并询问您是否要下载,而不是返回json数据(稍后由提交后回调使用)。在txt文件中,它是json数据 不知道我哪里做错了,有什么想法吗 提前谢谢 代码放在单独的js文件中: upload.js (function ($) { ImageUploader = function (o) { var
(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表单插件根本没有问题 问题是有缺陷的IE8不能很好地处理Json回调。即使您将类型指定为“application/json” 解决方案:将内容类型从“应用程序/json”更改为“文本/普通” 在MVC JsonResult中
return Json(newImage, "text/plain", JsonRequestBehavior.AllowGet);
我认为您必须在ajax调用中将Accept header参数指定为text/javascript(我现在还记得)。这不是IE8的错误,而是功能:)内容类型告诉服务器你们要发送什么,但你们需要告诉它你们期望得到什么回报