Длина параметра getJSON () больше 2500 для IE6 или IE7 - PullRequest
0 голосов
/ 31 марта 2010

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

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

});

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

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

Ответы [ 2 ]

1 голос
/ 31 марта 2010

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

Существует максимальное ограничение для запросов 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 голосов
/ 31 марта 2010

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

$.ajax({
    url: "applicationurl/controllerActionMethod", 
    data: { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 },
    dataType: "json",
    type: "POST",
    success: function(jsonResult) {
    }
});
...