最近在研究ajax技术的过程中遇到了一个奇怪的问题:req.readyState的值是始终为1,很纳闷,后来在网上查了下资料,就是在调用函数的时候不能带任何参数,使用()都不行。以下是找到的一篇关于此问题的解读文章!
readyState状态值始终为1的解决办法
2009-09-23 21:04
今天做Ajax的时候遇到个奇怪的问题,无法异步获得服务器端发送的数据,通过跟踪程序,发现readyState状态值始终为1,即请求已经建立但还没有发出(调用send() 之前),最初以为是Ajax的跨域问题,导致连接不能发送,把url改为本地的,测试后仍然不能运行。 网上搜了搜资料,有篇文章提到当onreadystatechange后面跟的回调函数名带有参数的时候readyState状态值会一直停留在1,甚至onreadystatechange=updatepage()这样带有两个括号的写法都会导致这个错误,具体原因还没查明,只有想办法改变回调函数的写法,避免传递参数,终于测试通过,这个问题还真是莫名其妙。 附上readyState状态值意义:
- 0:请求没有发出(在调用
open() 之前)。 - 1:请求已经建立但还没有发出(调用
send() 之前)。 - 2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。
- 3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。
- 4:响应已完成,可以访问服务器响应并使用它。
|
原文转载地址 http://hi.baidu.com/zbl110119/blog/item/52c06d3546e922315ab5f50c.html