root
管理员
管理员
  • UID1
  • 粉丝16
  • 关注1
  • 发帖数754
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:277回复:0

readyState状态值始终为1的解决办法

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

返回顶部