Загрузить изображение с плагином формы Jquery не работает в IE8 - PullRequest
4 голосов
/ 26 сентября 2010

Я использую плагин формы jQuery в своем проекте MVC для загрузки изображений.

Загрузка изображений работает отлично в Chrome и Firefox, однако, когда дело доходит до IE 8.

Не похоже на Chromeвместо того, чтобы возвращать данные json, которые впоследствии используются обратным вызовом после отправки, в IE 8 он возвращает 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 Ответ

2 голосов
/ 26 сентября 2010

Ну а после мучительной копания в интернете я наконец-то получил свое решение, более чем рад поделиться им:

У плагина jQuery Form вообще нет проблем.

Проблема в том, что IE 8 не может достаточно хорошо обрабатывать обратный вызов Json.даже если вы указали тип как "application / json"

Решение: измените тип содержимого с "application / json" на "text / plain" в MVC JsonResult

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