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

时间:2024-05-09 10:38:11 

在使用"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>
成功
标签:AJAX,Get,post,乱码
0
投稿

猜你喜欢

  • Python2和3字符编码的区别知识点整理

    2023-03-11 16:19:46
  • Go语言自定义linter静态检查工具

    2024-02-13 15:32:20
  • 表格梳理解析python内置时间模块看完就懂

    2023-10-21 08:10:27
  • 微信小程序 HTTPS报错整理常见问题及解决方案

    2024-04-19 09:47:08
  • Python socket连接中的粘包、精确传输问题实例分析

    2023-12-21 23:42:48
  • Python读大数据txt

    2021-12-29 20:34:12
  • python自动化测试工具Helium使用示例

    2022-09-26 22:59:05
  • 在Python中操作字典之update()方法的使用

    2023-01-16 09:55:53
  • 详解django自定义中间件处理

    2023-09-30 08:19:12
  • 读Json文件生成pandas数据框详情

    2023-01-11 19:29:01
  • Python正则表达式学习小例子

    2023-01-30 21:57:42
  • 使用 Supervisor 监控 Python3 进程方式

    2021-06-21 11:48:13
  • MySQL8新特性之全局参数持久化详解

    2024-01-23 12:17:10
  • Windows 下更改 jupyterlab 默认启动位置的教程详解

    2023-06-11 13:10:12
  • Python实现对桌面进行实时捕捉画面的方法详解

    2022-09-06 19:12:59
  • 浅谈JS原生Ajax,GET和POST

    2024-04-16 08:52:41
  • python引入requests报错could not be resolved解决方案

    2022-08-28 08:24:45
  • pycharm中使用request和Pytest进行接口测试的方法

    2022-06-30 03:34:46
  • Python 基于jwt实现认证机制流程解析

    2022-07-15 00:25:30
  • 详解Python函数print用法

    2023-06-10 03:47:34
  • asp之家 网络编程 m.aspxhome.com