ajax中的get与post的编码
发布时间:2020-12-16 01:02:51 所属栏目:百科 来源:网络整理
导读:1,get请求 一般get请求,只能处理非中文参数。如果是中文参数, 可以在控制端用String string =new String(name.getBytes("iso-8859-1"),"utf-8"); 因为tomcat默认用iso-8859-1来编码,所以用这种方法来把中文参数变成utf-8格式的。 但这种方法比较麻烦,一
1,get请求
一般get请求,只能处理非中文参数。如果是中文参数, 可以在控制端用String string =new String(name.getBytes("iso-8859-1"),"utf-8"); 因为tomcat默认用iso-8859-1来编码,所以用这种方法来把中文参数变成utf-8格式的。 但这种方法比较麻烦,一劳永逸的方法如下: 1)在tomcat的server.xml文件中做如下设置: URIEncoding="utf-8",把这行加在<Connetcer>末尾,这种方法仅对部分浏览器管用。像IE浏览器并不管用 所以,还需要第二步 2) 对请求地址,使用encodeURI函数进行统一的编码(utf-8) 比如 var uri = 'check_username.do?username='+ $F('username'); xhr.open('get',encodeURI(uri),true);
xhr.open('post','check_username.do',true); xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange=f1; xhr.send('username=' + $F('username'));
因为按照http协议的要求,如果发送的是post请求, 请求数据包里面,应该有一个消息头 content-type。 但是,ajax对象默认没有,所以,需要调用setRequestHeader方法。
注意: 如果忘记了设置requestHeader,程序运行不会报错,但在服务器端获得的值是null。(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |