2016-06-11 10 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'); 
     }); 

コンソールによれば、 "https://localhost:3443/users/facebook"への$リソースコールは正常に動作しますが、router.get( '/ facebook)は動作していません。 何がうまくいかないのか分かりません。

編集:$resource(baseURL + "users/facebook").get(function()が動作しない理由を私は理解できない完璧に動作GET https://localhost:3443/users/facebook

ポストマン。

答えて

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機能が動作します。

関連する問題