js调用AJAX时Get和post的乱码解决方法


Posted in Javascript onJune 04, 2013

在使用"get"时,抓取的页面最后加上编码类型

<% 
服务器端:servletactioncontext.getresponse().setcharacterencoding("utf-8"); 
客户端 网页特效p/jsp.html target=_blank >jsp教程: <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> 
response.expires = -9999 
response.addheader "pragma","no-cache" 
response.addheader "cache-ctrol","no-cache" 
response.addheader "content-type","text/html; charset=gb2312"'这是重点,否则会出现乱码 
response.write "中文汉字"%>

2、在使用post时用vbscript解决了编码问题:
源码如下:
<script language="vbscript"> 
function urlencoding(vstrin) 
strreturn = "" 
for i = 1 to len(vstrin) 
thischr = mid(vstrin,i,1) 
if abs(asc(thischr)) < &hff then 
strreturn = strreturn & thischr 
else 
innercode = asc(thischr) 
if innercode < 0 then 
innercode = innercode + &h10000 
end if 
hight8 = (innercode and &hff00) &hff 
low8 = innercode and &hff 
strreturn = strreturn & "%" & hex(hight8) & "%" & hex(low8) 
end if 
next 
urlencoding = strreturn 
end function 
function bytes2bstr(vin) 
strreturn = "" 
for i = 1 to lenb(vin) 
thischarcode = ascb(midb(vin,i,1)) 
if thischarcode < &h80 then 
strreturn = strreturn & chr(thischarcode) 
else 
nextcharcode = ascb(midb(vin,i+1,1)) 
strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode)) 
i = i + 1 
end if 
next 
bytes2bstr = strreturn 
end function 
</script>

下面是使用vbscript函数:
<script language=网页特效> 
/** 
* 初始化一个xmlhttp对象 
*/ 
function initajax() 
{ 
var ajax=false; 
try { 
ajax = new activexobject("msxml2.xmlhttp"); 
} catch (e) { 
try { 
ajax = new activexobject("microsoft.xmlhttp"); 
} catch (e) { 
ajax = false; 
} 
} 
if (!ajax && typeof xmlhttprequest!='undefined') { 
ajax = new xmlhttprequest(); 
} 
return ajax; 
} 
function saveuserinfo() 
{ 
var msg = document.getelementbyid("msg"); 
var f = document.user_info; 
var username = f.user_name.value; 
var userage = f.user_age.value; 
var usersex = f.user_sex.value; 
var url = "save.asp教程"; 
var poststr = urlencoding("user_name="+ username +"&user_age="+ userage +"&user_sex="+ usersex);//post时采用编码传递 
var ajax = initajax(); 
ajax.open("post", url, true); 
ajax.setrequestheader("content-type","application/x-www-form-urlencoded"); 
ajax.send(poststr); 
ajax.onreadystatechange = function() { 
if (ajax.readystate == 4 && ajax.status == 200) { 
msg.innerhtml = bytes2bstr(ajax.responsebody); //获取时解码 
} 
} 
} 
</script> 
<form name="user_info"> 
姓名:<textarea name="user_name" /></textarea><br /> 
年龄:<input type="text" name="user_age" /><br /> 
性别:<input type="text" name="user_sex" /><br /> 
<input type="button" value="提交表单" onclick="saveuserinfo()"> 
</form> 
<div id="msg"></div> 
成功
Javascript 相关文章推荐
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
javascript实现获取字符串hash值
May 10 Javascript
jQuery+css实现的换页标签栏效果
Jan 27 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
移动端滑动插件Swipe教程
Oct 16 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
js实现从左向右滑动式轮播图效果
Jul 07 Javascript
基于jQuery的表单填充实例
Aug 22 jQuery
js input输入百分号保存数据库失败的解决方法
May 26 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
layui清空,重置表单数据的实例
Sep 12 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 #Javascript
左侧是表头的JS表格控件(自写,网上没有的)
Jun 04 #Javascript
js判断undefined变量类型使用typeof
Jun 03 #Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
Jun 03 #Javascript
js+css实现增加表单可用性之提示文字
Jun 03 #Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 #Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 #Javascript
You might like
php学习笔记之 函数声明
2011/06/09 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
理解javascript对象继承
2016/04/17 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
一篇不错的Python入门教程
2007/02/08 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
pandas 时间格式转换的实现
2019/07/06 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
英语自我介绍演讲稿
2014/09/01 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
党的生日演讲稿
2014/09/10 职场文书
2014年仓库工作总结
2014/11/20 职场文书
尼克胡哲观后感
2015/06/08 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
Java spring单点登录系统
2021/09/04 Java/Android