HOWTO · Angular
Le contrôle d'accès autorise l'origine dans AngularJS
L'en-tête Access-Control-Allow-Origin spécifie quels domaines peuvent accéder au contenu. Par défaut, AngularJS utilise une chaîne vide comme valeur, ce qui signifie que n'importe quel domaine peut y accéder.
AngularJS est un framework d’application Web basé sur JavaScript pour créer des applications d’une seule page. Il s’agit d’un cadre structurel utilisé pour créer le frontal de l’application.
L’en-tête Access Control Allows Origin spécifie quels domaines peuvent accéder au contenu. Par défaut, AngularJS utilise une chaîne vide comme valeur, ce qui signifie que n’importe quel domaine peut y accéder.
Cet en-tête limite les domaines qui peuvent accéder aux ressources et a deux valeurs possibles, * et self. L’astérisque (*), dans ce cas, signifie que n’importe quel domaine peut y accéder, tandis que l’autre valeur self signifie que seules les pages d’origine similaire peuvent y accéder.
Bref, c’est une erreur de sécurité. Le navigateur n’autorisera pas le chargement de la ressource à moins qu’un en-tête Access Control Allow Origin ne soit présent.
Solution à cette erreur de sécurité
Discutons de la solution à cette erreur.
Les pages Web ordinaires peuvent transmettre et recevoir des données de serveurs distants à l’aide de l’objet XMLHttpRequest, mais la politique de même origine les contraint. Les extensions ne sont plus aussi limitées qu’avant.
Si une extension demande des droits d’origine croisée, elle peut communiquer avec des serveurs en dehors de son origine.
Pour résoudre cette erreur, vous pouvez utiliser JSONP. Cette technique vous permettra d’envoyer une requête AJAX du client au serveur avec des données JSON en ajoutant une balise de script sur la page et en définissant son attribut src pour qu’il pointe vers l’URL de votre service qui renvoie les données JSON.
var url = "paste url link here";
$http.jsonp(url)
.success(function(data){
console.log(data);
});