2016-06-11 19 views
0

如果我在登录表单中使用带有href =“users/facebook”的简单按钮,则Facebook回调将正常工作。

我想改变它,以便服务函数调用“users/facebook”,但它不起作用。我现在有:

的login.html

<a href="" ng-click="facebookLogin()" class="btn btn-primary"><span class="fa fa-facebook"></span> 

controllers.js

$scope.facebookLogin = function() { 
     console.log('facebookLogin called'); 
     AuthFactory.facebookLogin(); 
    }; 

services.js

authFac.facebookLogin = function() { 
     console.log('in services/facebooklogin'); 
     $resource(baseURL + "users/facebook").get(function(){ 
    }); 
    }; 

路线/ users.js

//not working 
    router.get('/facebook', passport.authenticate('facebook'), 
     function(req, res){ 
     console.log('facebook called'); 
     }); 

根据控制台$ resource调用“https://localhost:3443/users/facebook”工作正常,但router.get('/ facebook)不起作用。 我看不到发生了什么问题。

编辑:

邮差GET https://localhost:3443/users/facebook完美的作品,所以我不明白为什么$resource(baseURL + "users/facebook").get(function()不工作。

回答

0

我想我采取CORS的护理中加入以下到我的服务器上的文件:

app.use(function(req, res, next) { 
    res.setHeader('Access-Control-Allow-Origin', '*'); 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST'); 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization'); 
    next(); 
}); 

但它仍然是这到底是只用固定一个问题:

window.location = window.location.protocol + '//' + window.location.host + '/users/facebook'; 

代替:

$resource(baseURL + "users/facebook") 

现在facebookCallback功能工作。