AngularJS $http.post() отправляет каждый раз два AJAX-запроса, один без данных и один с

У меня странная проблема с AngularJS $http Сервис, который, насколько я вижу, больше ни у кого нет.

Каждый раз, когда я использую $http.post() на отправленные междоменные запросы я вижу в инструментах разработчика (сетевая панель), что отправляются два разных запроса: один, без каких-либо данных, и сразу после этого отправляется другой, который имеет все данные и возвращает с правильным ответом. с сервера.

Вот пример:

$http.post(url+'getSiteList.php', {session_id: $scope.session_id(), withCredentials: true})
        .success(function(data, status, headers, config) {
            console.log(data);
....

Кто-нибудь знает, что вызывает это? Я проверил код, и метод $ http.post вызывается только один раз.

1 ответ

Это все о том, как браузеры управляют CORS. При отправке междоменного запроса в угловом режиме браузер автоматически отправляет запрос HTTP OPTIONS на указанный URL/URI, который он называется "предполетным" запросом или "обещанием".

Пока удаленный источник возвращает HTTP-код состояния 200 и соответствующие сведения о том, что он примет в заголовках ответа, браузер выполнит исходный вызов JavaScript.

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