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滚动字幕效果实现代码
Jun 22 Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 Javascript
jQuery阻止同类型事件小结
Apr 19 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
Javascript实现鼠标右键特色菜单
Aug 04 Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
Apr 17 Javascript
微信小程序获取音频时长与实时获取播放进度问题
Aug 28 Javascript
js中位运算的运用实例分析
Dec 11 Javascript
微信小程序实现分享朋友圈的图片功能示例
Jan 18 Javascript
Layui点击图片弹框预览的实现方法
Sep 16 Javascript
javascript实现下拉菜单效果
Feb 09 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
php命令行写shell实例详解
2018/07/19 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python @classmethod 的使用场合详解
2019/08/23 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
团日活动总结格式
2015/05/11 职场文书
市级三好生竞选稿
2015/11/21 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers