Дубликаты вызовов ajax в angularjs
Я использую Express-JWT для создания успокоительного API. Теперь клиент выполняет повторяющиеся вызовы ajax, для первого инициатор - angularjs, а для второго - другой. Первый получает 204 в качестве кода ответа, а второй получает 200 в качестве кода ответа. Я пытался отладить, чтобы добраться до источника этого дубликата запросов, но я не смог.
Ниже приведены подробные данные для заголовка с кодом статуса 204.
Ниже приведены подробные данные для заголовка с кодом статуса 204.
Кто-нибудь может подсказать, в чем может быть проблема?
2 ответа
Первый вызов - это тип OPTIONS. Это предполетный вызов, который отправляет браузер, если страница и API находятся не в одном домене.
Целью этого звонка является работа с CORS. Backend обычно должен отправлять разрешенные типы методов запроса (GET, POST и т. Д.). После этого браузер отправит реальный вызов, если требуемый тип запроса будет среди возвращенных.
Вот образец заголовков ответа.
Вы можете игнорировать это для всех намерений и целей. Он не содержит обычно полезных данных или данных возврата.
Взгляните на AJAX в Chrome, отправляющий ОПЦИИ вместо GET/POST/PUT/DELETE? для получения дополнительной информации.
Эти два запроса разные OPTIONS
и другое GET
,
Для междоменных запросов, устанавливая тип контента на что-либо кроме application/x-www-form-urlencoded
, multipart/form-data
, или же text/plain
активирует браузер для отправки предварительной проверки OPTIONS
запрос к серверу.
Вы должны обрабатывать на сервере, когда метод запроса OPTIONS
, то вам нужно выйти без обработки.