ajax中的get与post的编码

前端之家收集整理的这篇文章主要介绍了ajax中的get与post的编码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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);


//注意:encodeURI()这个方法是javascript当中的,这个方法是把uri当中的中文字符采用utf-8编码



2,post请求
xhr.open('post','check_username.do',true);
xhr.setRequestHeader('content-type',
'application/x-www-form-urlencoded');
xhr.onreadystatechange=f1;
xhr.send('username=' + $F('username'));



-------------------------为什么要设置requestHeader??
因为按照http协议的要求,如果发送的是post请求,
请求数据包里面,应该有一个消息头 content-type。
但是,ajax对象默认没有,所以,需要调用setRequestHeader方法


注意:

如果忘记了设置requestHeader,程序运行不会报错,但在服务器端获得的值是null。 原文链接:https://www.f2er.com/ajax/166324.html

猜你在找的Ajax相关文章