通過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()
%>