为什么我获取不到数据,急,大家请帮忙,谢谢

bandrui 2006-11-02 03:44:06
ajax代码
==============================================================
var http_request=false;
function send_request(pagename)
{
http_request=false;
if (window.XMLHttpRequest)
{
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{}
}
}
if (!http_request)
{
window.alert("XMLHttpRequest实例创建失败");
return false;
}
http_request.onreadystatechange = processrequest;
var url="ChangePage.asp?pagename="+pagename
http_request.open("GET",url,true);
http_request.send(null);
}

function processrequest()
{
if(window.XMLHttpRequest){
//xmlObj = new XMLHttpRequest();
document.getElementById('food').innerHTML = http_request.responseText;
} else if(window.ActiveXObject){
//xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
document.getElementById('food').innerHTML = http_request.responseText;
} else {
return;
}

if (http_request.readyState == 4)
{
if (http_request.status == 200)
{
document.getElementById('food').innerHTML="";
}
else
{
alert("您请求的页面有问题,请联系管理员");
}
}
}
========================================================
后台changepage.asp代码
=========================================================
<!--#include file="include/con_db.asp"-->
<!--#include file="include/inc.asp"-->
<%
pagename=checkstr(request.querystring("pagename"))
Select Case pagename
Case "msmk"
Set rs=conn.execute("select top 5 FR_ID,FR_TuijianMing from Food_Restaurant order by FR_Tuijiandu desc")
tablecontent="<table width='280' border='0' align='center' cellpadding='0' cellspacing='0' class='bluelink'>"
If Not rs.eof And Not rs.bof Then
While Not rs.eof
tablecontent=tablecontent&"<tr><td><a href='Food_Restaurant_Detail.asp?id="&Trim(rs("FR_ID"))&"' target='_blank'>"&Trim(rs("FR_TuijianMing"))&"</a><td></tr>"
rs.movenext
Wend
Else
tablecontent=tablecontent&"<tr><td>暂无数据</td></tr>"
End If
tablecontent=tablecontent&"</table>"
rs.close
response.write "tablecontent"
End Select
%>
============================================================
调用页面的代码index.asp
<span style="cursor:hand" onMouseOver="send_request('msmk');">美食美客</span>
<table><tr><td id="food"></td></tr></table>
...全文
329 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eilien 2006-11-04
  • 打赏
  • 举报
回复
alert(http_request.responseTEXT);
看一看,返回回来的数据是什么,然后再针对具体进行操作.
按道理说,你能接受数据,URL提交应该正确,readyState==4 && status==200 之后,alert(http_request.responseText); 看一看,结果对不对.
chaircat 2006-11-03
  • 打赏
  • 举报
回复
你应该在异步回调(也就是onreadystatechange设置的函数)里面判断readyState==4和status==200之后再取数据才能成功...
chaircat 2006-11-03
  • 打赏
  • 举报
回复
我再说清楚一点...
如果你用异步,就是最后一个参数true,那么你应该在异步回调里面当readyState==4和status==200时候再取数据...
如果你使用同步,就是最后一个参数false,那你可以在send()之后就取数据...
hansint 2006-11-03
  • 打赏
  • 举报
回复
我没有很仔细的看你的代码,但我也遇到过类似的问题。最后查找出来的问题是我设置的是异步运行( http_request.open("GET",url,true);true即为异步模式),当后面调用某一个数据的时候,这个数据还没有从服务器端返回。我最后将true改为false解决该问题。如果不这样设置的话,你就应该在判断readyState==4和status==200之后再调用这个数据。发出来,希望能对你有所帮助。
lantersen 2006-11-02
  • 打赏
  • 举报
回复
/**
if (http_request.readyState == 4)
{
if (http_request.status == 200)
{
document.getElementById('food').innerHTML="";
}
else
{
alert("您请求的页面有问题,请联系管理员");
}
}
}
*/

试试把这里的每一个else补充完整,看是哪一步出错;
另一方面,直接alert(http_request.responseTEXT);看是否取得相当文档,
生成XML页面的缓存也是个得注意的一方面
number_3 2006-11-02
  • 打赏
  • 举报
回复
呵呵,我遇到过这种情况,但是自己不会,帮你顶
bandrui 2006-11-02
  • 打赏
  • 举报
回复
错误:完成该操作所需的数据还不可使用

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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