`没有Access-Control-Allow-Origin`标题 - AngularJS

时间:2015-05-22 12:57:43

标签: javascript angularjs postman

所以,当我查看错误时,我发现它主要与web服务有关 问题是我无法触摸网络服务。但是,在chrome上使用Postman扩展它可以很好地返回数据。所以,我倾向于认为前端有问题。

另外,我使用角度而不是初学者的水平,所以我可能会遗漏一些微不足道的东西。

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

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

1 个答案:

答案 0 :(得分:3)

如果您尝试通过REST访问的Web服务没有为您要获取的响应设置该标头,则始终会出现Access-Control-Allow-Origin错误。

但是,大多数情况下,您可以通过发出Server -> Server请求而不是Client -> Server (AJAX)请求来绕过它。

例如,如果您使用NodeJS作为后端并从那里发出请求,然后通过Node将响应发送回您的客户端,您应该没问题。

编辑另外,正如评论中所述(忘记了,谢谢),AngularJS的$http服务还公开了一种$http.jsonp方法,您可以使用它来解决这个问题。但是,只有当您尝试访问的Web服务在其API中公开JSONP信息时才有效。

Documentation on $http.jsonp