Дубликаты вызовов ajax в angularjs

Я использую Express-JWT для создания успокоительного API. Теперь клиент выполняет повторяющиеся вызовы ajax, для первого инициатор - angularjs, а для второго - другой. Первый получает 204 в качестве кода ответа, а второй получает 200 в качестве кода ответа. Я пытался отладить, чтобы добраться до источника этого дубликата запросов, но я не смог.

Скриншот

Ниже приведены подробные данные для заголовка с кодом статуса 204.

204 код ответа

Ниже приведены подробные данные для заголовка с кодом статуса 204.

200 код ответа

Кто-нибудь может подсказать, в чем может быть проблема?

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, то вам нужно выйти без обработки.

Другие вопросы по тегам