Вызов Ajax превышает допустимую длину URI - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть конфигурация ASP.NET MVC, и я создаю генератор отчетов.Я вывожу таблицу JQuery, чтобы пользователь мог отсортировать и переставить ее, прежде чем извлекать ее в формате PDF.Мой PDF-компонент основан на .NET, поэтому мне нужно отправить измененную таблицу обратно на сервер через AJAX.

Проблема в том, что URI может получить до 100 тыс. Символов, что заставляет сервер отвечатьстатус 414 (Request-URI Too Long).Кажется, что IIS не позволяет URI больше, чем несколько тысяч символов.

Я допускаю, что кажется странным составлять такой большой URL, поэтому я думаю, что я что-то упустил.Есть ли другой способ отправить данные на сервер, или, возможно, решить эту проблему другим способом?

Ответы [ 2 ]

5 голосов
/ 18 ноября 2010

Рекомендуемый способ отправки данных длиной более нескольких сотен символов - использовать HTTP POST вместо GET.GET добавляет все данные в URI в виде пар ключ-значение (например, ?foo=bar&baz=blah), тогда как POST помещает данные в тело запроса.Также существует ограничение на общую длину запроса, но оно намного больше, чем ограничение на URI.Со стороны jQuery переключение с GET на POST тривиально - для получения подробной информации прочитайте документацию по jQuery.ajax ().На стороне сервера вам, возможно, придется что-то изменить, чтобы параметры считывались из POST, а не из GET, но в большинстве случаев это также относительно просто.

2 голосов
/ 18 ноября 2010

Ключ в вашем вопросе post .Вам необходимо POST вернуться на сервер.

API jQuery AJAX post method.

$.post(url, [data], [success(data, textStatus, XMLHttpRequest)], [dataType]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...