您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

js调用AJAX时Get和post的乱码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 在使用"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>  成功