La demande a été redirigé vers 'https://..com/site/login?', ce qui est rejeté pour la croix-origine des demandes qui nécessitent de contrôle en amont

Avant de poster cette question, je suis passé par la plupart des débordement de pile questions, mais je n'ai pas obtenu une réponse

je suis en train d'essayer d'accéder à un client de l'api qui va faire l'authentification Oauth alors quand j'ai appeler l'api, il devrait jeté d'une fenêtre pop-up pour l'authentification similaire à fb auth,mais je suis en terminant par erreur dans ma console chromée comme ci-dessous

XMLHttpRequest ne peut pas charger https://api.springrole.com/authorize?
portée=XXXX&redirect_uri=http://localhost:8080/CheckRest/springrole.html&response_type=XXXX&client_id=XXXXXXXX.
La demande a été redirigé vers
'https://springrole.com/site/login?api_login=1&étendue=XXXX&=&erreur=invalid_request',
ce qui est rejeté pour la croix-origine des demandes qui nécessitent de contrôle en amont.

j'ai juste masqué certaines valeurs avec XXX pour des fins de sécurité. et mon req ressemble à ci-dessous

 $http({
        method : 'GET',

        url : url,
        headers : {
            'Content-Type' : 'application/json',
                "Access-Control-Allow-Origin": "https://api.springrole.com",
                "Access-Control-Allow-Methods":"GET",
                    "Access-Control-Allow-Credentials": true
        }
    }).success(function(data, status, headers, config) {
        $scope.details.response = JSON.stringify(data);

        console.log("success" + data)
    })

si je supprime les en-têtes dans la demande, je suis le ci-dessous montre l'erreur

Pas de "Access-Control-Allow-Origin' en-tête est présent sur le demandé
de la ressource. Origine " http://localhost:8080 ' est donc pas permis
d'accès.

des suggestions ou des travaux autour de seront appréciées.

Le contrôle d'accès des en-têtes sont généralement supposé être ajouté automatiquement par le navigateur plutôt que de définir explicitement. Avez-vous essayé de l'enlever?
si je les enlève, j'ai l'erreur ci-dessous Pas de "Access-Control-Allow-Origin' en-tête est présent sur la ressource demandée. Origine 'localhost:8080' est donc pas autorisé à accéder.
Cette méthode de l'ajout de l'en-tête côté client est intéressante. Généralement, j'ai vu le Access-Control-Allow-Origin en-tête jeu côté serveur pour contrôler l'accès à une ressource donnée...
quelqu'un a suggéré d'essayer d'avoir les en-têtes d'un client final alors j'ai essayé .
Voir la réponse à la stackoverflow.com/questions/34949492/... pour les détails de la façon de travailler autour de cela. Aussi comme indiqué, cette restriction sur les redirections n'est plus dans la spec, mais les navigateurs ont besoin de mettre à jour leurs implémentations pour correspondre à la spécification de changement.

OriginalL'auteur Devi Kiran | 2015-01-20