Подтвердить что ты не робот

GET против POST в AJAX?

Почему в AJAX есть запросы GET и POST, так как это никак не влияет на URL страницы? Какая разница, передавая конфиденциальные данные через GET в AJAX, поскольку данные не отражаются на URL страницы?

4b9b3361

Ответ 1

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


При работе с URI Collection: http://example.com/resources/

GET. Перечислите членов коллекции с их URI-членами для дальнейшей навигации. Например, перечислите все автомобили для продажи.

PUT. Значение определяется как "заменить всю коллекцию на другую коллекцию".

POST. Создайте новую запись в коллекции, где идентификатор автоматически присваивается коллекцией. Созданный идентификатор обычно включается как часть данных, возвращаемых этой операцией.

DELETE. Значение определяется как "удалить всю коллекцию".


При работе с Member URI: http://example.com/resources/7HOU57Y

GET: получить представление адресата элемента коллекции, выраженного в соответствующем типе MIME.

PUT: обновите адресный элемент коллекции или создайте его с указанным идентификатором.

POST. Обрабатывает адресованный элемент как коллекцию самостоятельно и создает новый подчиненный.

УДАЛИТЬ: удалить адресный элемент коллекции.


Источник: Wikipedia

Ответ 2

Хорошо, что касается GET, у вас все еще есть ограничение длины URL. Помимо этого, вполне возможно, что сервер обрабатывает запросы POST и GET по-разному; таким образом, нужно иметь возможность указать, какой запрос вы делаете.

Ответ 3

Другим отличием между GET и POST является способ кэширования в браузерах. Ответ POST никогда не кэшируется. GET можно кэшировать или не кэшировать на основе правил кэширования, указанных в заголовках ответов.

Ответ 4

Две основные причины их наличия:

  • GET запросы имеют некоторые довольно ограничительные ограничения по размеру; POST обычно могут содержать гораздо больше информации.

  • Бэкэнд может ожидать GET или POST, в зависимости от того, как он был разработан. Нам нужна гибкость при выполнении GET, если бэкэнд ожидает его, или POST, если это ожидаемое.

Ответ 5

Это просто соблюдение правил протокола http.

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

Сообщение - вызовы НЕ являются идемпотентными. Разрешено внести изменения в базовые данные, поэтому их можно использовать в методе создания. Если вы вызываете его несколько раз, вы создадите несколько записей.

Ответ 6

Обычно вы отправляете параметры в AJAX script, он возвращает данные на основе этих параметров. Он работает так же, как форма, которая имеет метод = "get" или method = "post". При использовании метода GET параметры передаются в строке запроса. При использовании метода POST параметры отправляются в тело сообщения.

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

Ответ 7

Спасибо.. В основном я использую метод GET с Ajax, и до сих пор у меня нет никаких проблем, кроме следующих:

Кэш Internet Explorer (в отличие от Firefox и Google Chrome) GET вызывается при использовании тех же значений GET.

Таким образом, использование некоторого интервала с Ajax GET может показывать те же результаты, если вы не измените URL-адрес с бесполезным использованием случайных чисел для каждого Ajax GET.

Ответ 8

Другие рассмотрели основные моменты (контекст/idempotency и размер), но я добавлю еще один: шифрование. Если вы используете SSL и хотите шифровать свои входные аргументы, вам нужно использовать POST.

Ответ 9

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