• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
新能源汽车行业用户产品设计
新能源汽车行业、面向C端用户的产品设计
博客园    首页    新随笔       管理     

第一个Ajax程序给我的下马威——xmlHttp的status=0?

keyword:ajax调试,javascript调试,status=0,XMLHttpRequest的Status,Stauts属性,XMLHttpRequest的StatusText,StautsText属性

 

 

这几天在看《Ajax基础教程》,感觉这本数的第2,3章真的很不错,特别是对XMLHttpRequest对象的讲解,以及第三章与服务器的交互讲的很不错。简单易懂而且能解决你很多的以前的说不出区别的一些概念。

虽然Ajax这个东西,看过了不少它的资料,而且现在的确对它已经有了一个比较整体的了解(说时候这个东西真是是一个新东西,感觉只是大家突然发现一个东西可以解决b/s模式页面刷新问题,所以大家终于抓住了一个救命的稻草,开始火热的研究或者说吹捧起来。而那根稻草就是XMLHttpRequest+Dom+XML)。就像《Ajax基础教程》中说到的,Ajax并不是一个新的技术,与其说是技术,不如说是一个技巧更合适。

有了一些理论知识,当然要用实践来证明以下了,所以今天可以写一个简单的代码,一直对自己的手写代码不太信任,所以一开始选了一个超级简单的一段代码。没有想到就是这段helloword级的代码,竟然让我郁闷了小半天……

代码很简单,就是通告XMLHttpRequest把一个XML文件里面的东西读出来,然后alert一下。

代码如下:

<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>my First ajax</title>

<script type="text/javascript">

 

 

var xmlHttp;

 

function createXMLHttpRequest(){

if(window.ActiveXObject){

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

}

else if (window.XMLHttpRequest){

xmlHttp=new XMLHttpRequest();

}

}

 

function startRequest(){

createXMLHttpRequest();

xmlHttp.onreadystatechange=handleStateChange;

xmlHttp.open("GET","simpleResponse.xml",true);

xmlHttp.send(null);

}

 

function handleStateChange(){

if(xmlHttp.readyState == 4){

alert(xmlHttp.statusText);

if(xmlHttp.status == 200) {

alert(xmlHttp.responseText);

}

}

}

 

</script>

</head>

 

<body>

<form action="#">

<input type="button" value="test" onclick="startRequest();">

</form>

</body>

</html>

 

simpleResponse.xml文件里面是随便写的一些东西。运行了一下,发现无论如何alert不出来东西。用vs2005调试了一下才发现问题出在xmlHttp.status上(惭愧~今天才刚搞懂怎么用vs2005调试javascript,还满高兴的,等下写篇东西讲讲过程)。原来status一直等于0!查了一下资料发现200对应ok,404代表Not Found,并没有提到0是什么东西,郁闷了几分钟,突然想起来statusText这个XMLHttpRequest属性,于是alert一下这个(刚学会vs2005的调试,所以还保留了以前的笨方法,慢慢适应吧),发现竟然是“unknow”。看到这个词才恍然,难道一定要先在IIS里面建立一个站点?inetmgr一下,竟然发现IIS没有安装(前一段时间重新安装系统的时候忘了安装了-_-b...),重新安装,然后将2个文件拷贝到一个文件夹中,将文件夹web共享一下。在IIS中浏览,果然alert出了正常的数据。

汗一个~好像犯了一个很低级的错误。正是这个低级的错误,让我吃到了helloAjax中的第一个下马威。

posted @ 2007-04-12 14:50  阿一(杨正祎)  阅读(13177)  评论(15)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3