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 相关文章推荐
HTTP状态代码以及定义(解释)
Feb 02 Javascript
window.location.hash 属性使用说明
Mar 20 Javascript
JavaScript 图像动画的小demo
May 23 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
禁用Enter键表单自动提交实现代码
May 22 Javascript
js实现点击图片改变页面背景图的方法
Feb 28 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
微信小程序实现上拉加载功能
Nov 20 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
详解JavaScript之Array.reduce源码解读
Nov 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
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
tagName的使用,留一笔
2006/06/26 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
js实现小星星游戏
2020/03/23 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
python实现计算倒数的方法
2015/07/11 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
python为什么会环境变量设置不成功
2020/06/23 Python
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
环保志愿者活动总结
2014/06/27 职场文书
党员民主评议自我评价
2014/10/20 职场文书
无房证明样本
2015/06/17 职场文书
教育读书笔记
2015/07/02 职场文书
《观潮》教学反思
2016/02/17 职场文书
因个人工作失误检讨书
2019/06/21 职场文书