Ajax lui-même interagit en fait avec les données via l'objet XMLHttpRequest. Cependant, pour des raisons de sécurité, les navigateurs n'autorisent pas le code js à effectuer des opérations inter-domaines et émettront des avertissements, donc le problème de l'inter-domaine ajax se produit.
Présentation
Le cross-domain Ajax est un problème courant dans le développement front-end. Cet article décrit le cas où le navigateur Google Chrome est utilisé comme client et Tomcat. utilisé comme solution de serveur Web.
Phénomène problématique
Lorsque l'accès entre domaines se produit, ajax signale généralement une erreur similaire à la suivante :
XMLHttpRequest ne peut pas charger http:/ /192.168.2.12:8001/oss/api/version/check. Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée. L'origine 'http://localhost:8000' n'est donc pas autorisée.
Solution 1 : Désactivez les paramètres de sécurité inter-domaines du navigateur, uniquement pour les tests pendant le développement
Prenez le navigateur Chrome comme exemple, faites un clic droit sur Chrome raccourci, puis ajoutez --disable-web-security après la valeur Target. Notez qu'il y a un espace avant --. Par exemple :
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" --disable-web-security
Après le démarrage, le navigateur Chrome vous demandera "Vous utilisez un navigateur non pris en charge". indicateur de ligne de commande : --disable-web-security", indique qu'il n'est pas sécurisé et est donc limité aux tests.
De cette façon, vous pouvez tester directement sans erreurs inter-domaines !
Solution 2 : Configurer le serveur Web pour prendre en charge l'accès inter-domaines
Voici une solution pour utiliser Tomcat comme serveur Web, dans le WEB-INF du Programme Web Java Ajoutez simplement la configuration suivante au fichier web.xml ci-dessous.
<!--cors filter--> <filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Remarque : Il existe plusieurs options de configuration ci-dessous org.apache.catalina.filters.CorsFilter. S'il n'y a pas de configuration ci-dessus, la configuration par défaut du système. sera utilisé. Dans l'environnement de production réel, la configuration doit être effectuée selon les besoins pour améliorer la sécurité. Par exemple, cors.allowed.origins configure les adresses sources auxquelles l'accès est autorisé. La valeur par défaut est all, c'est-à-dire *. De plus, il existe des méthodes cors.allowed., des cors.allowed.headers, etc. Pour des détails de configuration spécifiques, veuillez consulter [1] dans les références de cet article.
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.
Articles associés :
Cliquez pour charger basé sur ajax Plus de chargement sans actualisation sur cette page
Comment résoudre ajax Invalide sur Google Chrome
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!