Maison > interface Web > js tutoriel > Deux solutions aux problèmes inter-domaines Ajax

Deux solutions aux problèmes inter-domaines Ajax

亚连
Libérer: 2018-05-24 16:09:50
original
1896 Les gens l'ont consulté

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>
Copier après la connexion

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

Comment utiliser la publication jQuery pour transmettre des données contenant des caractères spéciaux

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal