这是我的第一个StackOverflow输入,所以请保持温和:p
我正在使用MEAN-stack进行Web应用程序,我遇到了一个我似乎无法修复的问题。尝试了我在网上找到的几种解决方案,但似乎没有任何效果。 我有这个Node / Express后端,它与facebook联系:
router.post('/login/facebook', passport.authenticate('facebook');
然后从Facebook收到回调:
router.get('/login/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/#' }),
function (req, res) {
console.log("in facebook return!");
console.log(req.user);
});
我可以在我的console.log中看到我得到的数据是我所期待的!到目前为止一切都那么好..问题是,当我点击我的facebook登录按钮时,它会调用我的卫星facebook登录:
$scope.authenticate = function(provider) {
$auth.authenticate(provider).then(function(res){
console.log(res.data);
});
};
..我在Chrome控制台中收到此消息:
XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=..... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5000' is therefore not allowed access.
我想这是我监督过的东西,但是我无法弄清楚是什么..当我点击它尝试重定向到的链接时,我在终端的控制台中获取了我的信息。但我不能重新定向,因为它不被允许,显然......
有没有人知道解决方案可能是什么?我试着将它放入我的server.app:
app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
正如我希望的那样,我可以绕过原始政策,但它也没有用。
有什么建议吗? : - )
祝你好运!