2015-03-17 2 views
1

J'utilise NodeJS, AngularJS et passeport et j'essaie d'utiliser google + login en utilisant passport-google-oauth2.AngularJS, Utiliser le passeport sans rediriger/rafraîchir côté serveur

Comme décrit dans les exemples que j'ajouté 2 itinéraires:

  • /auth/google:
  • /auth/google/rappel

En plus j'ai vu que dans tous les exemples, la appel à ces routes se fait via un lien:
<a href='/auth/google/>Login to Google</a>

Qui travaillent dans mon application.

Mais, je voulais faire l'appel de la la manière angulaire pour éviter la redirection - ce qui signifie:

$http.get('/auth/google/') 

Quand je l'ai essayé j'ai eu l'erreur de violation CORS

« Non en-tête 'Access-Control-Allow-Origin' est présent sur la demande ressource »

(règles CORS ont été ajoutés à mon serveur NodeJS).

Y at-il un moyen de le faire en utilisant $ http.get et ne pas faire la redirection dans le back-end?

Répondre

-1

Set useXDomain true pour le $ httpProvider

angular.module('ngdemo') 
     .config(['$httpProvider', function ($httpProvider) { 
     $httpProvider.defaults.useXDomain = true; 
     delete $httpProvider.defaults.headers.common['X-Requested-With']; 
    }]); 

pour plus d'infos here

+0

Merci pour la réponse, mais ne fonctionne pas pour moi ... – chenop

+0

'' useXDomain est [pas une chose] (https://github.com/angular/angular.js/issues/2956) en angulaire [$ httpprovider] (https://docs.angularjs.org/api/ng/provider/$httpProvider) –