Qu’est-ce que Cors ?
CORS est une norme W3C, qui signifie « Cross-origin resource sharing » (partage de ressources entre origines). Il permet au navigateur de faire des requêtes XMLHttpRequest à des serveurs cross-origin, contournant ainsi la limitation selon laquelle l’AJAX ne peut être utilisé qu’homogènement.
1. Introduction
CORS nécessite à la fois le support du navigateur et du serveur. Actuellement, tous les navigateurs prennent en charge cette fonctionnalité, et le navigateur IE ne peut pas être inférieur à IE10.
L’ensemble du processus de communication CORS est effectué automatiquement par le navigateur et ne nécessite pas la participation de l’utilisateur. Pour les développeurs, la communication CORS n’est pas différente de la communication AJAX homologue, et le code est exactement le même. Une fois que le navigateur constate qu’une requête AJAX traverse la source, il ajoute automatiquement des informations supplémentaires sur l’en-tête, et parfois une requête supplémentaire, mais l’utilisateur ne le ressentira pas.
Par conséquent, la clé pour obtenir une communication CORS est le serveur. Tant que le serveur implémente l’interface CORS, il peut communiquer entre les sources.
En fait, les programmes de serveur web (comme ASP.NET ou PHP, etc.) ne peuvent pas distinguer et ne géreront pas si une requête Http entrante est une requête Ajax inter-domaine.CORS est conçu pour résoudre ce problème, et la norme CORS personnalisée du W3C offre aux navigateurs un mécanisme permettant les requêtes inter-domaines Ajax.
2 : Code de requête JS Ajax natif
Comme je ne veux pas référencer jQuery, j’ai encapsulé les méthodes suivantes avec js, comme suit :
Ajax demande des tests d’interface et détecte une erreur comme suit :
Trois : Définir une méthode contrôleur permettant le cross-domain
Comme ci comme çaTous sont autorisésLa méthode contrôleur ou API est cross-domaine, dans le fichier web.configsystem.webServerLa configuration suivante est ajoutée sous le nœud :
Ce qui précède n’est pas le résultat que nous espérions ! Si nous voulons permettre à un seul nom de domaine d’accéder à l’une de nos interfaces entre deux domaines, nous devons définir une fonctionnalité qui ressemble à ceci :
Le code pour définir les permissions d’accès inter-domaines est ce paragraphe : HttpContext.Response.AppendHeader(« Access-Control-Allow-Origin », origin) ;
Nous définissons les caractéristiques au-dessus de la méthode contrôleur comme suit :
Nous relançons la requête Ajax avec le résultat présenté ci-dessous :
Les ressources d’interface API de nos autres sites web sont accessibles avec succès.
(Fin)
|