Maison  >  Article  >  Java  >  Exemple d'analyse de la façon dont Javaweb utilise cors pour compléter l'interaction des données Ajax inter-domaines

Exemple d'analyse de la façon dont Javaweb utilise cors pour compléter l'interaction des données Ajax inter-domaines

黄舟
黄舟original
2017-09-20 10:13:441518parcourir

Cet article commence par les concepts de cross-domain et de cors, puis présente le contenu pertinent de Javaweb utilisant cors pour compléter l'interaction de données ajax entre domaines. Les amis qui en ont besoin peuvent en savoir plus.

Cross-domain signifie que le navigateur ne peut pas exécuter de scripts provenant d'autres sites Web. Cela est dû à la politique de même origine du navigateur, une restriction de sécurité imposée par le navigateur sur JavaScript.

ajax lui-même interagit en fait avec les données via l'objet XMLHttpRequest. Cependant, pour des raisons de sécurité, le navigateur n'autorise pas le code js à effectuer des opérations inter-domaines, un avertissement sera donc émis.

cors

Nom complet : Partage de ressources d'origine croisée

Signification chinoise : Partage de ressources d'origine croisée

Sa définition sur Wikipédia est la suivante : Le partage de ressources d'origine croisée (CORS) est une spécification technique pour les navigateurs Web qui définit un moyen pour les serveurs Web de permettre aux pages Web d'accéder à leurs ressources à partir de différents domaines. Ce type d'accès est interdit par la politique de même origine. Le système CORS définit un moyen permettant aux navigateurs et aux serveurs d'interagir pour déterminer si les requêtes inter-domaines sont autorisées. Il s'agit d'un compromis qui permet plus de flexibilité, mais qui est plus sûr que de simplement autoriser toutes ces exigences.

1. Référence via Maven

cors-filter, 730332e3ba3d2e993336679135192e1b


<!-- 跨域问题 --> 
  <dependency> 
  <groupId>com.thetransactioncompany</groupId> 
  <artifactId>cors-filter</artifactId> 
  <version>2.5</version> 
 </dependency> 
 <dependency> 
  <groupId>com.thetransactioncompany</groupId> 
  <artifactId>java-property-utils</artifactId> 
  <version>1.10</version> 
 </dependency>

2. Sur le web Configurez le filtre en .xml et utilisez le filtre défini dans le jar importé. Faites attention à modifier le nœud cors.allowOrigin. Si l'accès inter-domaines est autorisé pour tous les sites, il peut être modifié en [*]. S'il y a plusieurs sites, la configuration peut être séparée par [,].


<!-- 跨域问题 --> 
  <filter> 
  <description>跨域过滤器</description> 
  <filter-name>CORS</filter-name> 
  <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 
  <init-param> 
   <param-name>cors.allowOrigin</param-name> 
   <param-value>https://127.0.0.1:8380</param-value> 
  </init-param> 
  <init-param> 
   <param-name>cors.supportedMethods</param-name> 
   <param-value>GET, POST, HEAD, PUT, DELETE</param-value> 
  </init-param> 
  <init-param> 
   <param-name>cors.supportedHeaders</param-name> 
   <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> 
  </init-param> 
  <init-param> 
   <param-name>cors.exposedHeaders</param-name> 
   <param-value>Set-Cookie</param-value> 
  </init-param> 
  <init-param> 
   <param-name>cors.supportsCredentials</param-name> 
   <param-value>true</param-value> 
  </init-param> 
 </filter> 
 <filter-mapping> 
  <filter-name>CORS</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping>

3. Appelez les données sur tous les domaines via jQuery. L'exemple de code est le suivant :


<.>

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!

Déclaration:
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