使用Jquery表单插件上传图像不能在IE8中运行

时间:2010-09-26 11:46:28

标签: asp.net-mvc-2 file-upload jquery compatibility

我在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"));
});

1 个答案:

答案 0 :(得分:2)

经过互联网的痛苦挖掘后,我终于得到了我的解决方案,非常乐意分享它:

jQuery Form Plugin完全没有问题。

问题是错误的IE 8无法很好地处理Json回调。即使你将类型指定为“application / json”

解决方案:将内容类型从“application / json”更改为“text / plain” 在MVC JsonResult

 return Json(newImage, "text/plain", JsonRequestBehavior.AllowGet);