В чем разница между почтовым запросом ajax и почтовым запросом формы? - PullRequest
2 голосов
/ 09 июля 2019

на стороне сервера, например, я использую флешку для обработки этих почтовых запросов, один и тот же код может обрабатывать два типа запросов, но на стороне клиента запрос ajax не позволит браузеру обновить всю страницу, но форму делает. Так в чем же разница в глубине, не является ли поле заголовка не тем же самым? или что-то другое?? Спасибо!

Ответы [ 4 ]

1 голос
/ 09 июля 2019

Нет никакой разницы, только то, что AJAX, как предполагает аббревиатура, является асинхронным, что означает, что он не блокирует выполнение чего-либо еще.И форма, и AJAX-запрос отправляют POST-запрос, с той лишь разницей, что браузер использует ответ от POST-запроса форм для загрузки новой страницы, где в качестве AJAX-запроса ответ передается обратному вызову в JavaScript.

0 голосов
/ 09 июля 2019

Отправка HTML-формы создает HTTP-запрос, отформатированный в соответствии с правилами, определенными для HTML-форм, и заставляет браузер перейти к полученному ответу.

Выполнение запроса с помощью JavaScript позволяет программированию создавать гораздо более широкий спектр запросов - включая добавление пользовательских заголовков, форматирование данных различными способами (например, JSON) и идентично тому, как форма HTML будет создавать запрос - и вызывает ответ должен быть обработан с помощью JavaScript.

Как правило, при написании кода на стороне сервера вам не нужно заботиться о том, пришел ли запрос из JavaScript или из HTML-формы. Есть ситуации, когда вы делаете это, но только как XY Проблема .

Например, вы можете захотеть ответить на регулярную отправку формы с помощью HTML-документа (потому что браузер переходит на него), но на Ajax-запрос с JSON (потому что вы хотите легко его обработать). В этом случае JavaScript должен установить Accept заголовок запроса , чтобы сообщить серверу, что он предпочел бы ответ JSON. Затем код на стороне сервера, который вы пишете, должен посмотреть на это, чтобы определить, является ли предпочтительным HTML или JSON (и не беспокоиться, почему HTML или JSON предпочтительнее).

0 голосов
/ 09 июля 2019

Запросы формы и Ajax отправляются обратно тем же способом. Для Flask вы захватываете запрос POST, и он будет идентичен, если Ajax содержит все ту же информацию из формы.

То, что отправляет форму (и вызывает обновление страницы), это событие "onsubmit" , которое запускается в DOM. Это может быть отменено, если вы хотите. Это часто делается с помощью функции «PreventDefault» . Я считаю, что это было несколько раз освещено на сайте. Возможно, вы просто упустили понятие «onsubmit» из формы.

0 голосов
/ 09 июля 2019

Ajax-запрос - это xhr-запрос, отправляемый в фоновом режиме асинхронно и обрабатываемый вашим javascript-кодом, тогда как запрос формы - это обычный запрос, и страница браузера будет перезагружена, а также ответ, представленный браузером

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