2016-04-22 1 views
0

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

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

у вас установлено расширение КРОС в вашем хромом –

+0

Вы установили заголовки CORS на код сервера? Ошибка CORS возникает, когда выполняются запросы кросс-домена, я вижу только localhost? –

+0

IP-адрес сервера должен быть 'whitelisted'' xxx' – manish

ответ

1

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

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

Подробнее о CORS в https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

+0

У меня нет контроля над кодом на стороне сервера. Так что нужно обходное решение. – Smitha

+0

, даже если Access-Control-Allow-Origin включен, поскольку это запрос POST, тип контента будет преобразован из приложения/json в обычный текст. Я столкнулся с этой проблемой, и обходной путь, который работал для меня, - это создать мою собственную api, которая перенаправляет этот запрос. Я не думаю, что есть способ преодолеть это с помощью браузера, поскольку политики CORS специфичны для браузера. –

Смежные вопросы