2015-05-22 2 views
-3

Итак, когда я посмотрел на ошибку, я вижу, что она имеет какое-то отношение к веб-сервису.
Проблема в том, что я не могу прикоснуться к веб-сервису. Однако, используя расширение Postman на chrome, он возвращает данные просто отлично. Итак, я склонен полагать, что в интерфейсе есть что-то не так.Нет заголовка `Access Access Control-Allow-Origin` - AngularJS

Кроме того, я использую угловой и, скорее, уровень новичка, поэтому мне может быть не хватает чего-то тривиального.

.factory('forecast', ['$http', function($http){ 

    return $http.get('https://link') 
     .success(function(data) { 
      return data; 
     }) 
     .error(function(err) { 
      return err; 
     }); 
    } 
]); 
+3

Из кода в обычной странице, вы не можете выдавать HTTP запросы через AJAX к серверам, которые явно не указывают, что они позволяют это, возвращая этот заголовок. Расширения браузера - это другая история - они могут делать что угодно. – Pointy

+0

[такая же политика происхождения, снова] (http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy) – adeneo

+0

Возможный дубликат [Как включить CORS в AngularJs] (http: //stackoverflow.com/questions/23823010/how-to-enable-cors-in-angularjs) – neiesc

ответ

3

Вы всегда получите ошибку Access-Control-Allow-Origin если вебсервис вы пытаетесь получить доступ через REST не имеет такой заголовок, установленный для ответа вы стремитесь получить.

Однако в большинстве случаев вы можете обойти это, сделав запрос Server -> Server вместо запроса Client -> Server (AJAX).

Например, если вы используете NodeJS в качестве бэкэнд и делаете запрос оттуда, отправьте ответ обратно своему клиенту через Node, все должно быть в порядке.

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

Documentation on $http.jsonp

+0

или если api обслуживает jsonp ... если вы собираетесь ответить на вопрос, он должен хотя бы предоставить все опции – charlietfl

+0

Спасибо, я забыл это, но его добавили сейчас :) – jsfrocha