AJAX源码应用示例2-解决AJAX返回中文乱码问题

779 篇文章 0 订阅
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

本例将演示AJAX+ASP+ACCESS的组合应用,全示例演示地址:

AJAX_demo2/index.html" target=_blank>http://www.alixixi.com/AJAX_demo2/index.html

示例经过本人修改getcustomer.asp源代码,最终解决了最头疼的AJAX返回中文数据出现乱码的问题..

下面为示例源码文件:

'1,index.html

<html>
<head>
<title>阿里西西-AJAX-应用示例2</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script src="selectcustomer.js"></script>
</head><body><form>
请选择用户:
<select name="customers" οnchange="showCustomer(this.value)">
<option value="1">阿里西西</option>
<option value="2">80端口</option>
<option value="3">FM</option>
</select>
</form><p>
<div id="txtHint"><b>用户信息...</b></div>
</p></body>
</html>

 

 

'2,getcustomer.asp

<%
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & request.querystring("q")

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
rs.Open sql, conn

Response.ContentType = "text/xml"
Response.CharSet = "GB2312"
Dim varCount,varReq,xmldom
varCount = Request.TotalBytes
varReq = Request.BinaryRead(varCount)
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
 Set xmldom = Server.CreateObject("MSXML2.DOMDocument")
 xmldom.load varReq
 Response.Write "<?xml version=""1.0"" encoding=""GB2312""?>" & xmldom.documentElement.xml
Else
response.write("<table>")
do until rs.EOF
for each x in rs.Fields
response.write("<tr><td><b>" & x.name & "</b></td>")
response.write("<td>" & x.value & "</td></tr>")
next
rs.MoveNext
loop
response.write("</table>")
End If
%>

 

'3,selectcustomer.js

var xmlHttp

function showCustomer(str)
{
var url="getcustomer.asp?sid=" + Math.random() + "&q=" + str
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}

function GetXmlHttpObject(handler)
{
var objXmlHttp=null

if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera")
return;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"

if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.οnlοad=handler
objXmlHttp.οnerrοr=handler
return objXmlHttp
}
}

 

'4,数据库格式

库名:northwind.mdb

表名: Customers

字段:
CustomerID 自动编号
Name 文本
NL 数字
Address

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值