2015-01-30 3 views
4

Я пробовал все и не знаю, что, по-видимому, является проблемой.IE пытается загрузить ответ json при использовании ajaxForm jQuery plugin

Проблема: IE загружает ответ json + перед отправкой не срабатывает.

Я использую IE 11.

Я использую JQuery - плагин ajaxForm. Реализованная загрузка файла с ним. Все работает отлично с хромом и все не с IE.

IE пытается загрузить ответ json и не делает плагин перед функцией.

Код по JS:

var options = { 
    beforeSend: beforeSubmit, 
    uploadProgress: progressSubmit, 
    success: uploadSuccess, 
    complete: completeSubmmit 
}; 

form.ajaxForm(options); 

Фактический запрос производится в ручном щелчком мыши.

('#submitBtn').click(); 

Я использую контроллер MVC-3, действие HttpPost получает HttpPostedFile. Ответ представляет собой простой ViewModel, содержащий несколько строк.

Я пробовал все следующее, ничего не работало.

Попытки:

Response.Headers.Remove("Content-Type"); 
Response.Headers.Add("content-type", "application/json"); 

return Json(vm, "text/html"); 
return Content(JsonSerializerHelper.Serialize(vm), "text/html"); 
return Json(vm); 

Скрипач:

Chrome Запрос:

Content-Length: 606 
Pragma: no-cache 
Cache-Control: no-cache 
Accept: */* 
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundary4ABojutLkBGFbphB 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8,he;q=0.6,pt;q=0.4,ru;q=0. 
Content-Disposition: form-data; name="file"; filename="customersBulk.csv" 
Content-Type: application/vnd.ms-excel 

Chrome Ответ:

HTTP/1.1 200 OK 
Cache-Control: private, s-maxage=0 
Content-Type: application/json; charset=utf-8 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
X-Frame-Options: SAMEORIGIN 
Date: Thu, 29 Jan 2015 18:19:47 GMT 
Content-Length: 469 

-- and the actual Json object. -- 

IE Запрос:

Accept: text/html, application/xhtml+xml, */* 
Accept-Language: he-IL 
Content-Type: multipart/form-data; boundary=---------------------------7df28b2e1c126c 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 
Content-Length: 691 
DNT: 1 
Host: localhost 
Pragma: no-cache 
Content-Disposition: form-data; name="file";  filename="MY_PATH\..\customersBulk.csv" 
Content-Type: application/vnd.ms-excel 
-----------------------------7df28b2e1c126c-- 

IE Ответ:

HTTP/1.1 200 OK 
Cache-Control: private, s-maxage=0 
Content-Type: application/json; charset=utf-8 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
X-Frame-Options: SAMEORIGIN 
Date: Thu, 29 Jan 2015 18:15:50 GMT 
Content-Length: 558 

-- and the Json as well. -- 

Версии: JQuery Form Plugin

версия: 3.50.0-2014.02.05
Требуется JQuery v1.5 или более поздней версии

Есть идеи?

ответ

1

Можете ли вы попробовать следующие вещи:

$('#YourFormId').bind('submit', function() { return false; }); 

Это предотвратит оригинальный процесс отправки формы.