加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);


//注意: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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读