Maison > interface Web > js tutoriel > le corps du texte

Solution rapide aux paramètres de transmission ajax contenant des caractères spéciaux

亚连
Libérer: 2018-05-24 10:29:25
original
1685 Les gens l'ont consulté

Je vais maintenant vous apporter une solution rapide au problème des paramètres de transmission ajax contenant des caractères spéciaux. J'espère que cela aide tout le monde.

JQuery AJAX rencontre un tel problème. Les paramètres contiennent des caractères spéciaux, tels que &'#@, etc. À ce stade, des problèmes surviendront lors de l'exécution d'AJAX car les paramètres passés ont changé. exemple Comprenez simplement :

Option 1 :

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); '
Copier après la connexion

L'ajax exécuté ci-dessus consiste à supprimer de manière asynchrone une donnée nommée 11&abd. Lors de la demande de la page ajax.ashx, le paramètre de nom que nous avons obtenu est 11. Après avoir exécuté l'opération, nous constaterons que les données portant le nom 11 sont effectivement supprimées, mais les données portant le nom 11&abc ne sont pas supprimées. & caractère spécial, qui remplace les deux précédents Le paramètre devient trois paramètres option, nom, abc À ce stade, vous devez utiliser une autre méthode pour transmettre les paramètres :

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: {
    'option': 'delete',
    'name': '11&adb'
  },
  success: function(data) {
    if (data != 'error') {}
  }
});
Copier après la connexion

.

L'utilisation des paramètres json ci-dessus dans le format peut éviter les erreurs de paramètres causées par des caractères spéciaux.

Option 2 : codage uniforme UTF-8.

1 page JSP :

<%@ page language="java" pageEncoding="UTF-8"%>

2.Page Ajax.js : lors du passage de paramètres, les paramètres avec des caractères spéciaux peuvent être convertis en utilisant la fonction escape(encodeURIComponent()) Code, passé en arrière-plan !

var url = "/ZX/servlet/AddMemoServlet memo=" + memoCode + "&otherMemo=" + escape(encodeURIComponent(otherMemo)) + "&applNo=" + applNo.innerText.substr(0, 16); //alert("url="+url); 
xmlHttp.open("POST", url, true); 
xmlHttp.onreadystatechange = doMemo; 
xmlHttp.send(null);
Copier après la connexion

3. Le serveur reçoit les données transmises Par exemple : dans la méthode doGet d'une servlet : request.setCharacterEncoding("gb2312. "); réponse.setContentType("text/xml;charset=utf-8"); réponse.setHeader("Cache-Control", "no-cache"); ...... //Ce qui suit résout les paramètres transmis par url en Ajax La valeur contient des caractères spéciaux et l'erreur d'analyse back-end se produit : décodage de java.net.URLDecoder au format utf-8 urlDecoder=new java.net.URLDecoder(); String otherMemo = urlDecoder.decode(request. getParameter("otherMemo" ),"utf-8"); logger.info("otherMemo:" + otherMemo);

Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde. l'avenir.

Articles connexes :

Téléchargez des fichiers via Ajax et utilisez FormData pour effectuer des requêtes Ajax

Utilisez ajax pour implémenter l'actualisation asynchrone requêtes

Comment télécharger des fichiers à l'aide de jQuery Ajax

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!