Maison >Java >javaDidacticiel >Java implémente les requêtes inter-domaines et la transmission des données du formulaire

Java implémente les requêtes inter-domaines et la transmission des données du formulaire

WBOY
WBOYoriginal
2023-08-08 09:51:281405parcourir

Java implémente les requêtes inter-domaines et la transmission des données du formulaire

Java implémente les requêtes inter-domaines et la transmission des données de formulaire

Dans le développement Web moderne, les requêtes inter-domaines sont un problème courant, en particulier lorsque nous utilisons Java pour traiter les données de formulaire. Cet article expliquera comment utiliser Java pour implémenter des requêtes inter-domaines et la transmission de données de formulaire afin de résoudre ce problème, et fournira des exemples de code pertinents.

1. Qu'est-ce qu'une requête inter-domaine
Une requête inter-domaine fait référence à la demande de ressources sous un autre nom de domaine à partir d'une page Web sous un nom de domaine, et la politique standard de même origine du navigateur interdit de telles requêtes inter-domaines. La politique de même origine a été établie pour protéger la confidentialité des utilisateurs et la sécurité du site Web, mais dans certains scénarios, nous devons mettre en œuvre des requêtes inter-domaines, telles que le développement séparé du front-end et du back-end, et utiliser des noms de domaine et des ports différents. pour le développement front-end.

2. Façons de résoudre les requêtes inter-domaines
En Java, il existe de nombreuses façons de résoudre le problème des requêtes inter-domaines. Deux méthodes courantes seront présentées ci-dessous.

  1. JSONP
    JSONP est une requête inter-domaines qui utilise la fonctionnalité de la balise <script> Côté serveur, nous devons envelopper les données renvoyées dans un appel de fonction, puis transmettre la fonction en tant que paramètre à l'appelant. L'appelant peut recevoir les données renvoyées en définissant une fonction de rappel globale. </script>

Ce qui suit est un exemple de code qui utilise JSONP pour implémenter des requêtes inter-domaines. Supposons que l'adresse de l'interface du serveur soit http://server.com/api et que le nom de domaine de la page frontale soit http://client.com.

// 前端代码
function processData(data) {
  // 处理返回的数据
}

var script = document.createElement('script');
script.src = 'http://server.com/api?callback=processData';
document.head.appendChild(script);

// 服务端代码
String callback = request.getParameter("callback");
String data = "{"name": "Alice", "age": 20}";
String result = callback + "(" + data + ")";
response.getWriter().write(result);
  1. CORS
    CORS est l'abréviation de Cross-Origin Resource Sharing. Il s'agit d'une méthode de requête inter-domaines implémentée en définissant des en-têtes de réponse côté serveur. Côté serveur, nous devons définir Access-Control-Allow-Origin et d'autres en-têtes de réponse associés pour permettre à des noms de domaine spécifiques d'effectuer des requêtes inter-domaines.

Ce qui suit est un exemple de code qui utilise CORS pour implémenter des requêtes inter-domaines. Supposons que le nom de domaine de la page frontale est http://client.com et que l'adresse d'interface du serveur est http://server.com/api.

// 前端代码
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://server.com/api');
xhr.onreadystatechange = function () {
  if (xhr.readyState === XMLHttpRequest.DONE) {
    if (xhr.status === 200) {
      var data = JSON.parse(xhr.responseText);
      // 处理返回的数据
    }
  }
};
xhr.send();

// 服务端代码
response.setHeader("Access-Control-Allow-Origin", "http://client.com");
String data = "{"name": "Alice", "age": 20}";
response.getWriter().write(data);

3. Résumé
Ce qui précède explique comment utiliser Java pour implémenter des requêtes inter-domaines et la transmission de données de formulaire. Nous pouvons choisir la méthode appropriée pour résoudre le problème des requêtes inter-domaines en fonction de scénarios et de besoins spécifiques. Qu'ils utilisent JSONP ou CORS, ce sont des solutions courantes et efficaces.

J'espère que cet article vous sera utile. Si vous avez des questions, n'hésitez pas à laisser un message. Merci d'avoir lu!

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