Angularjs CORS问题与Angular(卫星导航器)和Facebook登录

Angularjs CORS问题与Angular(卫星导航器)和Facebook登录,angularjs,cors,mean,passport-facebook,satellizer,Angularjs,Cors,Mean,Passport Facebook,Satellizer,这是我的第一个StackOverflow输入,所以请温柔一点:p 我正在做一个平均堆栈的Web应用程序,我遇到了一个似乎无法解决的问题。尝试了我在网上找到的几种解决方案,但似乎没有任何效果。 我有一个与facebook联系的Node/Express后端,具有: router.post('/login/facebook', passport.authenticate('facebook'); 然后在以下位置收到来自facebook的回拨: router.get('/login/facebook/

这是我的第一个StackOverflow输入,所以请温柔一点:p

我正在做一个平均堆栈的Web应用程序,我遇到了一个似乎无法解决的问题。尝试了我在网上找到的几种解决方案,但似乎没有任何效果。 我有一个与facebook联系的Node/Express后端,具有:

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.
我想有些事情是我监督过的,但我想不出是什么。。当我点击tryes重定向到的链接时,我会在终端控制台中获得我的信息打印集。但是我不能被重定向,因为这显然是不允许的

有人知道解决方案是什么吗?我已尝试将其放入我的服务器。应用程序:

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();
});
正如我所希望的那样,我可以绕开跨原产地政策,但它也不起作用

有什么建议吗?:-)


致以最良好的祝愿

是否正在发出飞行前选项请求?请指定一点,好吗?:-)您正在执行POST请求,CORS POST请求通常会启动选项请求。向服务器发出选项请求只是为了在发布大量信息之前检查相关CORS头是否存在。如果他们不这样做,那么这个职位甚至不会发生。如果通过浏览器发送帖子,请检查“网络”选项卡以查看是否正在发送帖子请求。无论哪种方式,服务器上正确的CORS头都会修复它。如果做不到这一点,Angular中有一些解决方法来阻止选项请求。我猜正在进行post请求,我会看到facebook登录弹出窗口,但当我输入电子邮件和密码时,它不得不重定向我,它失败了(我的终端中有状态码302)。。在请求的my标头中有以下内容:响应标头查看源访问控制允许标头:内容类型、授权访问控制允许方法:获取、放置、发布、删除访问控制允许来源:*连接:保持活动内容长度:0日期:Wed,2016年4月13日13:44:23 GMT位置:。。。。。X-Content-Type-Options:nosniff X-Download-Options:noopen X-Frame-Options:SAMEORIGIN X-XSS-Protection:1;模式=块