2010-03-31 5 views
0

У меня есть веб-приложение MVC. Я вызываю метод контроллера через метод getJSON() jquery.Длина параметра getJSON() больше чем 2500 для IE6 или IE7

$.getJSON("applicationurl/controllerActionMethod", { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 }, function(jsonResult) { 

}); 

Здесь я передаю значения json в параметр1 и parameter2. Проблема в том, что, когда длина параметра2 больше 2500, он вызывает метод controllActionMethod.

Я также использовал метод $ .ajax вместо getJSON(), но он также не работает.

ответ

1

Я предполагаю, что вы имеете в виду, что он не вызывает контроллер.

Максимальное ограничение на запросы GET (реализовано в браузерах, а не на серверах); и 2500 очень близко к нему в некоторых браузерах.

Вместо этого вы должны сделать запрос POST: http://api.jquery.com/jQuery.post, где предел намного больше.

jQuery.post("applicationurl/controllerActionMethod", { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 }, function(jsonResult) { 

}, 'json'); 

Для уточнения, если вы переходите по длине GET, запрос все равно должен быть сделан; хотя и усечен. Я обращался к некоторой проверке сервера, предотвращающей запрос.

0

Вы должны использовать почту, а не получить:

$.ajax({ 
    url: "applicationurl/controllerActionMethod", 
    data: { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 }, 
    dataType: "json", 
    type: "POST", 
    success: function(jsonResult) { 
    } 
}); 
Смежные вопросы