Разница между jquery.post и jquery.get? - PullRequest
9 голосов
/ 04 марта 2010

В чем разница между этими двумя вызовами AJAX и почему я выбрал бы их использование при использовании asp.net mvc framework?

Ответы [ 6 ]

11 голосов
/ 04 марта 2010

Один использует POST, а другой - GET.

Что касается их предназначения, то единственное реальное техническое различие (пожалуйста, исправьте этот пост, если я ошибаюсь), это то, что GET имеет гораздо более короткое ограничение для строки запроса. На практике GET предназначен для извлечения чего-либо с сервера. Вызов GET не должен вызывать побочные эффекты на сервере. POST - это когда вы намереваетесь что-то отправить на сервер и сделать что-то с ним.

edit: слово, которое я искал для описания GET, является идемпотентом. Вы должны иметь возможность совершать один и тот же вызов GET неограниченное количество раз и каждый раз получать один и тот же результат без каких-либо последствий для сервера (при условии, конечно, что никто другой не изменил состояние сервера.) Но помните, что нет никаких технических барьеров, мешающих вам злоупотреблять GET или POST.

4 голосов
/ 04 марта 2010

$.post и $.get - просто оболочки для $.ajax с соответствующими значениями для параметра type.(Строки 4888 и 4913 в источнике .)

В MVC вы можете указать, что действие контроллера принимает запросы только с использованием определенного типа HTTP-запроса (используя AcceptVerbs атрибут контроллера / действия).

Если вы отправляете запрос на такое действие, вам потребуется указать тип запроса, в этом случае вы можете найти $.post или $.get удобный ярлыкдо $.ajax.

3 голосов
/ 04 марта 2010

Единственное, с чем я столкнулся, это то, что вызовы $ .get кэшируются IE, что является проблемой, учитывая, что вы обычно используете Ajax для обновления данных. Если вы хотите использовать GET, но не хотите кэшироваться, вам нужно перейти к $. Ajax и передать кеш: false в настройках.

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

get - это вызов HTTP GET, а post - это HTTP POST.

См. Википедию для больше объяснений .

По существу, если вы включаете данные (например, при отправке формы), используйте post; в противном случае, если вы просто загружаете страницу или хотите передать параметры строки запроса , используйте get. (любые данные, которые вы передаете get, будут переданы в виде строки запроса)

редактирование:

Они разделены, поскольку базовый объект XMLHttpRequest (основной объект AJAX в браузерах) требует , указав метод . На самом деле, даже ниже, чем когда вы запрашиваете веб-страницу, вы должны либо HTTP / 1.0 GET, либо HTTP / 1.0 POST (или другие методы запроса). Если вы говорите с точки зрения дизайна, как альтернативы передаче строки в какой-то метод «загрузки», я не могу сказать, о чем думали разработчики программного обеспечения, стоящие за jQuery.

edit2:

На самом деле, если вы посмотрите последнюю документацию jQuery, get и post перечислены в разделе «Сокращенные методы», и приведены эквивалентные методы. Таким образом, они предназначены только для сокращения вашего кода и являются синонимом метода ajax .

0 голосов
/ 31 августа 2013
**GET** - Requests data from a specified resource
**POST** - Submits data to be processed to a specified resource

GET в основном используется только для получения (получения) некоторых данных с сервера.Примечание. Метод GET может возвращать кэшированные данные.

POST также можно использовать для получения некоторых данных с сервера.Однако метод POST НИКОГДА не кэширует данные и часто используется для отправки данных вместе с запросом.

0 голосов
/ 04 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...