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中需要注意的细节问题小结
Dec 06 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
Jul 15 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
js子页面获取父页面数据示例
May 15 Javascript
Js与Jq 获取页面元素值的方法和差异对比
Apr 30 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
Jun 25 Javascript
JavaScript九九乘法口诀表的简单实现
Oct 04 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
Aug 29 Javascript
详解VUE2.X过滤器的使用方法
Jan 11 Javascript
JS中数据结构之栈
Jan 01 Javascript
vue2.0结合Element-ui实战案例
Mar 06 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 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 socket的讲解与实例分析
2013/06/13 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python读写文件基础知识点
2019/06/10 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
后勤自我鉴定
2013/10/13 职场文书
奥巴马演讲稿
2014/01/08 职场文书
学校大课间活动方案
2014/01/30 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
加入学生会演讲稿
2014/04/24 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Pytest中skip skipif跳过用例详解
2021/06/30 Python