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.
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
Vous devez vous connecter pour publier un commentaire.
Ouais vous êtes en cours d'exécution dans le Même La Politique De L'Origine qui est en place pour des raisons de sécurité. En un mot, c'est, fondamentalement, vous êtes demandeur/de l'ouverture de quelque chose à partir d'une origine différente qui n'est pas très sécurisé. Si vous le souhaitez, vous pouvez désactiver temporairement dans Chrome en ajoutant l'argument
--disable-web-security
.Donc, à partir d'un Terminal vous pouvez exécuter
open -a Google\ Chrome --args --disable-web-security
Je le fais souvent, j'ai donc fini par simple ajout d'alias et de mon
.bash_profile
afin que je puisse y accéder facilementPuis dans le Terminal, je peux juste appeler
insecure-chrome
et Chrome pop-up. Vous savez qu'il a travaillé si vous voyez l'avertissement de Sécurité en haut. L'avertissement ressemble à ceciEt de cours obligatoire d'avertissement soyez prudent lorsque cela. Je ne voudrais pas surfer sur le web dans ce mode, mais en travaillant localement, vous devez être bien.
Pour les utilisateurs de windows, vous pouvez naviguer vers le dossier où Chrome est installé et configuré
Assurez-vous de fermer toutes les instances de Chrome avant de le faire, sinon cela ne fonctionnera pas.
OriginalL'auteur aug