zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JS方法AJAX 解决 调用 乱码 get post
2023-06-13 09:15:00 时间
在使用"get"时,抓取的页面最后加上编码类型
复制代码代码如下:

<%
服务器端:servletactioncontext.getresponse().setcharacterencoding("utf-8");
客户端网页特效p/jsp.htmltarget=_blank>jsp教程:<%@pagelanguage="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解决了编码问题:
源码如下:
复制代码代码如下:

<scriptlanguage="vbscript">
functionurlencoding(vstrin)
strreturn=""
fori=1tolen(vstrin)
thischr=mid(vstrin,i,1)
ifabs(asc(thischr))<&hffthen
strreturn=strreturn&thischr
else
innercode=asc(thischr)
ifinnercode<0then
innercode=innercode+&h10000
endif
hight8=(innercodeand&hff00)&hff
low8=innercodeand&hff
strreturn=strreturn&"%"&hex(hight8)&"%"&hex(low8)
endif
next
urlencoding=strreturn
endfunction
functionbytes2bstr(vin)
strreturn=""
fori=1tolenb(vin)
thischarcode=ascb(midb(vin,i,1))
ifthischarcode<&h80then
strreturn=strreturn&chr(thischarcode)
else
nextcharcode=ascb(midb(vin,i+1,1))
strreturn=strreturn&chr(clng(thischarcode)*&h100+cint(nextcharcode))
i=i+1
endif
next
bytes2bstr=strreturn
endfunction
</script>

下面是使用vbscript函数:
复制代码代码如下:
<scriptlanguage=网页特效>
/**
*初始化一个xmlhttp对象
*/
functioninitajax()
{
varajax=false;
try{
ajax=newactivexobject("msxml2.xmlhttp");
}catch(e){
try{
ajax=newactivexobject("microsoft.xmlhttp");
}catch(e){
ajax=false;
}
}
if(!ajax&&typeofxmlhttprequest!="undefined"){
ajax=newxmlhttprequest();
}
returnajax;
}
functionsaveuserinfo()
{
varmsg=document.getelementbyid("msg");
varf=document.user_info;
varusername=f.user_name.value;
varuserage=f.user_age.value;
varusersex=f.user_sex.value;
varurl="save.asp教程";
varpoststr=urlencoding("user_name="+username+"&user_age="+userage+"&user_sex="+usersex);//post时采用编码传递
varajax=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>
<formname="user_info">
姓名:<textareaname="user_name"/></textarea><br/>
年龄:<inputtype="text"name="user_age"/><br/>
性别:<inputtype="text"name="user_sex"/><br/>
<inputtype="button"value="提交表单"onclick="saveuserinfo()">
</form>
<divid="msg"></div>
成功