web前端|js教程
jquery.ajax,乱码,显示
web前端-js教程JQuery
易语言窗口嵌套源码,Vscode卡的插件,ubuntu的全屏,tomcat上部署php,爬虫 查公司,php人事工资系统,江岸区seo网络推广,网购网站php代码,饮料公司网站模板lzw
JQuery默认的contentType:application/x-www-form-urlencoded
系统登录模板 源码,ubuntu是哪国开发,tomcat9稳定版本,编写爬虫教学,php判断空气质量,湖南seo专业lzw
这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1
易语言日志源码,Ubuntu怎么开启网卡,python爬虫表情包,php foo(,临沂seo误区lzw
ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。
而我们的UTF-8则可以解决这一问题。
最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。
1. 修改JQuery代码
只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。
修改用到的jquery文件:jquery-1.4.4.min.js
ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charset=UTF-8",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest}
2. Js代码:
function confirmcommit(){ var wlCompany = $("#wlCompany").val();//这里含有中文 var wlId = $("#wlId").val(); var proposer = $("#proposer").val(); if(confirm("确认要换货吗")){$.ajax({type:POST,url:${pageContext.request.contextPath}/returnGoods/confrimExchangeGoods.do,data:wlCompany=+wlCompany+&wlId=+wlId+&proposer=+proposer, //直接传值dataType: ext,error:function(){ alert("JQuery AJAX Error!");},success:function(msg){ alert(msg); return; if(msg==换货成功){ document.location="${pageContext.request.contextPath}/orderItem/queryProduceItem.do?orderBusType="+${orderBusType}; }}});} }
3 .Java代码:
public ActionForward confrimExchangeGoods(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception {log.info("确认换货 confrimExchangeGoods start...............");response.setCharacterEncoding("UTF-8"); //这里要设置一下String wlCompany = request.getParameter("wlCompany");String wlId = request.getParameter("wlId");String proposer = request.getParameter("proposer");.....}