Ошибка CORS в приложении AngularJS

0

Я получаю следующую ошибку, когда пытаюсь сделать запрос POST из моего приложения localhost:

XMLHttpRequest cannot load https://www.xxx..yy/json/orders. Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, http://localhost:9000', but only one is allowed. Origin 'http://localhost:9000' is therefore not allowed access.

Это краткое описание моего приложения:

ctrl:
.controller('myCtrl', function ($scope,$http) {
      var urlBase = "https://xxx/json/";
      console.log("Hello...");
                 
      $scope.startDirectTransaction = function() {
        console.log("startDirectTransaction form...");
        
       $http({method: 'POST', url: urlBase + 'orders', headers: {
            'api_key': 'xxx'}
        }).then(function(response){ 
              $scope.related = response.data;
              console.log("Success!"); 
            });

      };
app:

<!-- begin snippet: js hide: false -->
  • 0
    Вы установили расширение CROS в Chrome?
  • 0
    Вы установили заголовки CORS на стороне сервера? Ошибка CORS возникает при выполнении междоменных запросов. Я вижу только localhost?
Показать ещё 3 комментария
Теги:
http-headers
https
cors

1 ответ

1

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

Решение этой проблемы - это домен, который вы пытаетесь опубликовать, должен разрешать через Access-Control-Allow-Origin

Узнайте больше о CORS в https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

  • 0
    У меня нет контроля над кодом на стороне сервера. Так что нужен обходной путь.
  • 0
    даже с включенным Access-Control-Allow-Origin, поскольку это запрос POST, тип контента будет преобразован из application / json в обычный текст. Я столкнулся с этой проблемой, и обходной путь, который работал для меня, состоит в том, чтобы создать свой собственный API, который передает этот запрос. Я не думаю, что есть способ преодолеть это с помощью браузера, поскольку политики CORS зависят от браузера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню