用Angular $资源调用Facebook的问题

时间:2016-06-11 21:29:27

标签: express angular-resource

如果我使用一个简单的按钮,用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()无效。

1 个答案:

答案 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功能正常工作。