通过javascript创建的XMLHttp对象,向asp页面提交一个请求,接收的返回值可能会是乱码。
有一解决方式很简单,就是在asp返回值前加上 response.charset="gb2312".
完成代码如下:
html
<script language="javascript">
function createXMLHTTP()
{
var Try={
these: function()
{
var returnValue;
for (var i=0; i<arguments.length; i++)
{
var lambda=arguments[i];
try
{
returnValue=lambda();
break;
}catch(e) {}
}
return returnValue;
}
}
var xmlhttp=Try.these
(
function() { return new ActiveXObject('Msxml2.XMLHTTP')},
function() { return new ActiveXObject('Microsoft.XMLHTTP')},
function() { return new XMLHttpRequest()}
) || false;
return xmlhttp;
}
var xmlhttp=createXMLHTTP();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4)
{
if (xmlhttp.status==200)
{
document.getElementById("msg").innerHTML=xmlhttp.responseText;
}
}
}
xmlhttp.open("post","responseTest.asp",true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send(true);
</script>
<table border="0" cellspacing="0" cellpadding="0" width="500" align="center">
<tr align=center height="8">
<td id="msg"> </td>
</tr>
<tr align=center>
<td>测试 </td>
</tr>
</table>
responseTest.asp
<%
response.charset="gb2312"
Response.Write (" <font color=red> 结果完成 </font> ")
Response.End()
%>