' No Access-Control-Allow-Origin '头文件不存在

`No Access-Control-Allow-Origin` header is present - AngularJS

本文关键字:不存在 文件 No Access-Control-Allow-Origin      更新时间:2023-09-26

所以,当我查看错误时,我看到它大多与web服务有关。
问题是我不能触摸web服务。然而,在chrome上使用邮差扩展,它返回的数据很好。所以,我倾向于相信前端有问题。

另外,我使用的是angular,而且是初学者的水平,所以我可能会错过一些微不足道的东西。

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

如果您试图通过REST访问的web服务没有针对您希望获得的响应的标头集,则您将始终获得Access-Control-Allow-Origin错误。

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

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

EDIT:另外,正如评论中所说的(忘记了,谢谢),AngularJS的$http服务也暴露了一个$http.jsonp方法,你可以使用它来绕过它。然而,只有当你试图访问的web服务在其API中也将信息公开为JSONP时,这才有效。

$http.jsonp文档