Maison >interface Web >Questions et réponses frontales >Que faire si jquery ajax utf-8 est tronqué ?

Que faire si jquery ajax utf-8 est tronqué ?

藏色散人
藏色散人original
2023-02-17 09:46:022228parcourir

Solution au code tronqué jquery ajax utf-8 : 1. Définissez l'encodage contentType sur "utf-8" et le code sur "contentType: "application/x-www-form-urlencoded;charset=utf-8"" ; 2, définissez "resp.setContentType("text/text;charset=GBK");" avant d'obtenir l'objet PrintWriter.

Que faire si jquery ajax utf-8 est tronqué ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, version jquery3.2.1, ordinateur Dell G3.

Que dois-je faire si jquery ajax utf-8 est tronqué ?

jQuery AJAX demande du code tronqué et renvoie du code tronqué

1. La requête jQuery AJAX est reçue sous forme de code tronqué en arrière-plan

Vous pouvez définir explicitement l'encodage de contentType sur utf-8, et l'arrière-plan peut généralement décoder normalement. Par exemple :

contentType: "application/x-www-form-urlencoded; charset=utf-8",
jQuery(form).ajaxSubmit({
url: "doLogin?user=a",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: showLoginResponse
});

Si vous n'ajoutez pas contentType : "application/x-www-form-urlencoded; charset=UTF-8", et lorsque vous utilisez escape(), "Le corps du message contient moins d'octets que la longueur du contenu spécifiée " apparaîtra

Erreur.

2. jQuery AJAX renvoie des caractères tronqués

Avez-vous constaté que peu importe la façon dont vous définissez l'encodage, les données reçues par le client sont toujours tronquées ? Veuillez regarder l'exemple ci-dessous, ne vous rencontrez des problèmes ?

void saveTempKind(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException { 
 PrintWriter pw = resp.getWriter();
 resp.setContentType("text/text;charset=GBK"); 
 try {
  //DO PROCESS 
  pw.write("成功");
 }catch(Exception e){
  pw.write("失败");
 }
}

Le problème est que l'instruction resp.setContentType("text/text;charset=GBK"); doit être avant

PrintWriter pw = resp.getWriter();

, pas après. Si c'est comme dans l'exemple ci-dessus, quelle que soit la façon dont vous définissez le codage de la réponse, le problème tronqué du front-end restera toujours le même. La raison possible est que le codage a été déterminé avant que pw obtienne le PriintWriter. La déclaration d'encodage doit donc être effectuée avant d'obtenir l'objet PrintWriter.

Apprentissage recommandé : "

Tutoriel vidéo jQuery

"

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