дублировать вызовы ajax в angularjs

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

Снимок экрана

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

Код ответа 204

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

Код ответа 200

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


person Abhishek Prakash    schedule 23.09.2015    source источник
comment
Проверьте все места, где вызывается API.   -  person Joy    schedule 23.09.2015


Ответы (2)


Первый вызов имеет тип OPTIONS. Это предварительный вызов, который отправляет браузер, если страница и API не находятся в одном домене.

Целью этого вызова является работа с CORS. Бэкенд обычно должен отправлять разрешенные типы методов запроса (GET, POST и т. д.). Затем браузер отправит реальный вызов, если желаемый тип запроса находится среди возвращенных.

Вот пример заголовков ответа. введите здесь описание изображения

Вы можете игнорировать его во всех смыслах и целях. Он не содержит обычно полезной полезной нагрузки или возвращаемых данных.

Взгляните на AJAX в Chrome, отправляющем OPTIONS вместо этого GET/POST/PUT/DELETE? для получения дополнительной информации.

person Akash    schedule 23.09.2015
comment
Спасибо за ответ, он очень полезен. - person Abhishek Prakash; 23.09.2015

Эти два запроса различны: один — OPTIONS, а другой — GET.

Для междоменных запросов установка любого типа содержимого, отличного от application/x-www-form-urlencoded, multipart/form-data или text/plain, приведет к тому, что браузер отправит предварительный запрос OPTIONS на сервер.

Вам нужно обработать сервер, когда метод запроса OPTIONS , тогда вам нужно выйти без обработки.

person Anil Talla    schedule 23.09.2015