Maison >interface Web >Questions et réponses frontales >Que faire si jquery ajax utf-8 est tronqué ?
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.
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 jQueryCe 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!