ajax get方法乱码
HTML代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ajaxTest1.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function createQueryString(){
var firstName=document.getElementById("firstName").value;
var lastName=document.getElementById("lastName").value;
var bb=document.getElementById("bb").value;
var queryString="firstName="+firstName+"&lastName="+lastName+"&bb="+bb;
return queryString;
}
function doRequestUsingGet(){
createXMLHttpRequest();
var queryString="testPostAndGet.do?";
queryString=queryString+createQueryString()+"×tamp="+new Date().getTime();
alert(queryString);
xmlHttp.onreadystatechange=callBack;
xmlHttp.open("GET",queryString,true);
xmlHttp.send(null);
} function doRequestUsingPost(){
createXMLHttpRequest();
var url="testPostAndGet.do?timeStamp="+new Date().getTime();
var queryString=createQueryString();
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange=callBack;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(queryString);
}
function callBack(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
parseResults();
}
}
}
function parseResults(){
var responseDiv=document.getElementById("serverResponse");
if(responseDiv.hasChildNodes()){
responseDiv.removeChild(responseDiv.childNodes[0]);
}
var responseText=document.createTextNode(xmlHttp.responseText);
responseDiv.appendChild(responseText);
}
</script>
</head>
<body>
<table>
<tbody>
<tr>
<td>姓:</td><td><input type="text" id="firstName"/></td>
</tr>
<tr>
<td>名:</td><td><input type="text" id="lastName"/></td>
</tr>
<tr>
<td>生日:</td><td><input type="text" id="bb"/></td>
</tr>
</tbody>
</table>
<div>
<form action="#" name="form1">
<input type="button" value="以GET发送数据" onclick="doRequestUsingGet()"/>
<input type="button" value="以POST发送数据" onclick="doRequestUsingPost()"/>
</form>
</div>
<h2>服务器返回结果:</h2>
<div id="serverResponse"></div>
</body>
</html>
服务器端代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// response.setHeader("Charset","UTF-8");
// response.setHeader("Charset","GB2312");
response.setContentType("text/xml;charset=UTF-8");
String firstName=request.getParameter("firstName");
System.out.println("firstName:"+firstName);
String lastName=request.getParameter("lastName");
String bb=request.getParameter("bb");
System.out.println("is action ok");
String responseText="hello"+firstName+lastName+"你的生日是:"+bb+"你发送数据所使用的方法是:"+request.getMethod();
System.out.println(responseText);
try{
PrintWriter out=response.getWriter();
out.println(responseText);
// out.write(responseText);
out.close();
System.out.println("is action end");
}catch(Exception e){
e.printStackTrace();
}
return null;
}
环境Struts1.3用了过滤器UTF-8编码,Java代码和Html都用的UTF-8,以Post方式发送数据正常显示不出现乱码
但是以GET方式发送乱码
何解?
哪位达人给解释下。。。。。
到底是为什么呢?