ajax错误,是关于ajax实践一书里的一个简单例子,请大家帮忙看看...

szheto 2006-06-04 07:21:42
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm7.aspx.vb" Inherits="ajaxtest.WebForm7"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm7</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script type="text/javascript" src="net.js"></script>
<script type="text/javascript">
function FillTerritory(oElem,oTarget)
{
var strValue=oElem.value;
var url="WebForm8.aspx";
var strParams="q=" + strValue;
var loader1=new net.ContentLoader(url,FillDropDown,null,"POST",strParams);
}
function FillDropDown(){
var xmlDoc = this.req.responseXML.documentElement;
var xSel = xmlDoc.
getElementsByTagName('entry')[0];
var name = xSel.
childNodes[0].firstChild.nodeValue;
var option=document.Form1.name;
option.value=name;
}

</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<INPUT id="part" style="Z-INDEX: 101; LEFT: 136px; POSITION: absolute; TOP: 176px" type="text"
onchange="FillTerritory(this,document.Form1.name)"><INPUT id="name" style="Z-INDEX: 102; LEFT: 320px; POSITION: absolute; TOP: 176px" type="text">
</form>
</body>
</HTML>

查询数据库里的数据页面:WebForm8.aspx
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Response.ContentType = "text/xml"

Dim strQuery As String
strQuery = Request.Form("q")
Dim strSql As String = "SELECT CL_Name FROM CLIENT WHERE CL_No = " & _
strQuery & "order by CL_No"
Dim dtOptions As DataTable
dtOptions = FillDataTable(strSql)

Dim strXML As StringBuilder
strXML = New StringBuilder("<?xml " & _
"version=""1.0"" ?>")
Dim row As DataRow
strXML.Append("<entry>")
For Each row In dtOptions.Rows

strXML.Append("<text>" & _
row("CL_Name") & _
"</text>")

Next
strXML.Append("</entry>")
'Response.Write("<script language=javascript>window.alert('error');</script>")
Response.Write(strXML.ToString)

End Sub

Public Function FillDataTable( _
ByVal sqlQuery As String) _
As DataTable
Dim strConn As String = "server=TEO;uid=sa;pwd=;database=jacky"
Dim cmd1 As _
New SqlClient.SqlDataAdapter(sqlQuery, _
strConn)
Dim dataSet1 As New DataSet
cmd1.Fill(dataSet1)
cmd1.Dispose()
Return dataSet1.Tables(0)
End Function

net.js页面:
var net = new Object();

net.READY_STATE_UNINITIALIZED = 0;
net.READY_STATE_LOADING = 1;
net.READY_STATE_LOADED = 2;
net.READY_STATE_INTERACTIVE = 3;
net.READY_STATE_COMPLETE = 4;


/*--- content loader object for cross-browser requests ---*/
net.ContentLoader = function(url, onload, onerror, method, params, contentType) {
this.req = null;
net.currentLoader = this;
this.onload = onload;
this.onerror = (onerror) ? onerror : this.defaultError;
this.loadXMLDoc(url, method, params, contentType);
}

net.ContentLoader.prototype.loadXMLDoc = function(url, method, params, contentType) {

if (window.netscape && window.netscape.security.PrivilegeManager.enablePrivilege)
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');

if (!method) {
method = "GET";
}
if (!contentType && method == "POST") {
contentType = 'application/x-www-form-urlencoded';
}
if (window.XMLHttpRequest) {
this.req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
this.req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.req) {
try {
var loader = this;
this.req.onreadystatechange = function() {
net.ContentLoader.onReadyState.call(loader);

}
this.req.open(method, url, true);
if (contentType) {
this.req.setRequestHeader('Content-Type', contentType);
}
this.req.send(params);
} catch (err) {
this.onerror.call(this);
}
}
}


net.ContentLoader.onReadyState = function() {
if (window.netscape && window.netscape.security.PrivilegeManager.enablePrivilege)
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
var req = this.req;
var ready = req.readyState;
if (ready == net.READY_STATE_COMPLETE) {
var httpStatus = req.status;
//if (status==200 || httpStatus==0){
if (httpStatus == 200 || httpStatus == 0) {
this.onload.call(this);
} else {
this.onerror.call(this);
}
}
}

net.ContentLoader.prototype.defaultError = function() {
alert("error fetching data!"
+ "\n\nreadyState:" + this.req.readyState
+ "\nstatus: " + this.req.status
+ "\nheaders: " + this.req.getAllResponseHeaders());
}
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
szheto 2006-06-06
  • 打赏
  • 举报
回复
顶!!!
szheto 2006-06-05
  • 打赏
  • 举报
回复
大哥大姐,有没有详细点的解决方法.
ilovejolly 2006-06-05
  • 打赏
  • 举报
回复
mark
hagain 2006-06-05
  • 打赏
  • 举报
回复
白痴痴地问:ajax是什么喔?
cat_hsfz 2006-06-04
  • 打赏
  • 举报
回复
status:500——表明AJAX在取数据时发生了服务器端错误,详细是什么错误你就要自己模拟客户端AJAX的请求去测试一下了。
pfc001 2006-06-04
  • 打赏
  • 举报
回复
浏览器不支持
szheto 2006-06-04
  • 打赏
  • 举报
回复
错误就是弹出错提示信息如下:
error fetching data!

readyState;4
status:500
headers:Date:Sun,o4 Jun 2006 11:54:35 GMT
Server:Microsoft-IIS/6.0
X-Powered-By:ASP.NET
X-AspNet-Version:1.1.4322
Cache-Control:private
Content-Type:test/html;charset=utf-8
Content-Length:5416
lazyfish 2006-06-04
  • 打赏
  • 举报
回复
什么错误要贴出来,估计大部分人还不能取代编译器的功能。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧