Angularjs + nodejs + 护照跨域请求

Posted

技术标签:

【中文标题】Angularjs + nodejs + 护照跨域请求【英文标题】:Angularjs + nodejs + passport cross domain request 【发布时间】:2014-04-19 19:03:02 【问题描述】:

我正在使用带有 facebook 策略的护照进行身份验证。问题不在于nodejs的后端,因为我在没有angularjs的情况下进行了测试,一切正常,但是每当angularjs发挥作用时,我都会得到CORS错误。

Access-Control-Allow-Origin 标头存在于请求的资源上。因此,Origin host:8000 不允许访问。

我已经尝试了通过谷歌找到的大多数解决方案,但到目前为止没有任何效果。有谁知道可能出了什么问题?

据我所知,这是这类问题最常见的答案。

site.config(function($httpProvider) 
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
);

就像我说的,这不是 nodejs 的错。

【问题讨论】:

我在尝试使用 $http.get 直接从 Angular 调用外部 API 时遇到了类似的问题。我没有设法解决这个问题,但作为一种解决方法,我在后端(nodejs)中创建了一个模块,它调用外部 API 并与后端进行角度通信。 【参考方案1】:

您需要使用弹出窗口来解决 Angular 的 CORS 问题。请参阅此帖子以获取示例:http://www.webdeveasy.com/single-page-application-authentication/

【讨论】:

以上是关于Angularjs + nodejs + 护照跨域请求的主要内容,如果未能解决你的问题,请参考以下文章

在nodejs中创建API Key并验证跨域

护照Facebook登录中的“对于需要预检的跨域请求是不允许的”错误?

NodeJs JWT 护照

nodejs护照身份验证令牌

无法使用护照登录 - Nodejs

Angular2、NodeJS 和护照问题