Le contrôle d'accès autorise l'origine dans AngularJS

Muhammad Adil 23 mai 2022
Le contrôle d'accès autorise l'origine dans AngularJS

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);
});
Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook