Когда использовать GET и POST в Ajax

Когда вы используете Ajax (Асинхронный JavaScript и XML) для доступа к серверу без перезагрузки веб-страницы у вас есть два варианта передачи информации для запроса на сервер: GET или POST.

Это те же две опции, которые есть у вас при передаче запросов на сервер для загрузки новой страницы, но с двумя отличиями. Во-первых, вы запрашиваете только небольшую часть информации вместо целой веб-страницы. Второе и наиболее заметное отличие состоит в том, что, поскольку запрос Ajax не отображается в адресной строке, ваши посетители не заметят разницы при выполнении запроса.

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

Чего не следует делать

Итак, как мы должны сделать выбор относительно того, какой из этих двух вариантов следует использовать?

Ошибка, которую могут совершить некоторые новички, состоит в том, чтобы использовать GET для большинства своих вызовов просто потому, что их легче кодировать. Наиболее заметное различие между вызовами GET и POST в Ajax заключается в том, что для вызовов GET по-прежнему ограничен объем передаваемых данных, как при запросе загрузки новой страницы.

instagram viewer

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

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

Итак, если объем передаваемых данных не является хорошей причиной для выбора между GET и POST, то что мы должны использовать для принятия решения?

Эти два метода фактически были созданы для совершенно разных целей, и различия между тем, как они работают, частично объясняются различием в том, для чего они предназначены. Это относится не только к использованию GET и POST из Ajax, но и везде, где могут использоваться эти методы.

Цель GET и POST

GET используется как следует из названия: получить Информация. он предназначен для использования при чтении информации. Браузеры будут кэшировать результат запроса GET, и если тот же запрос GET будет выполнен снова, они отобразят кэшированный результат, а не повторно выполнят весь запрос.

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

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

Как выбрать GET или POST

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

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

Используйте POST, если ваш вызов собирается записать какие-либо данные на сервер.

Фактически, вы должны использовать этот критерий не только для выбора между GET и POST для вызовов Ajax, но и для выбора, который следует использовать для обработки форм на вашей веб-странице.

instagram story viewer