如果我使用一个简单的按钮,用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');
});
根据控制台,$资源调用&#34; https://localhost:3443/users/facebook&#34;工作正常但router.get(&#39; / facebook)无效。 我无法看出出了什么问题。
编辑:
邮递员GET https://localhost:3443/users/facebook
完美运作,因此我无法理解为什么$resource(baseURL + "users/facebook").get(function()
无效。
答案 0 :(得分: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功能正常工作。