【问题标题】:XMLHttpRequest onload property?XMLHttpRequest 加载属性?
【发布时间】:2011-10-24 02:10:12
【问题描述】:

我喜欢在没有 jquery 的情况下做尽可能多的代码,所以对于 ajax 请求,我一直在按照 MDN 所说的做一些事情:

function alertContents(httpRequest) {  
  try {  
    if (httpRequest.readyState === 4) {  
      if (httpRequest.status === 200) {  
        alert(httpRequest.responseText);  
      } else {  
        alert('There was a problem with the request.');  
      }  
    }  
  }  
  catch( e ) {  
    alert('Caught Exception: ' + e.description);  
  }  
}  

我正在查看 Google 制作扩展的教程,他们使用了他们请求的 onload。 onload 是在 readystate 为 4 且状态为 200 时运行的事件监听吗?如果不是,它是什么,我什么时候用它来代替上面的方法。

【问题讨论】:

  • 为什么不实现它,看看它什么时候触发?我要试一试
  • 许多“ajax 包装器”在readyState === 4 上调用成功。试一试这个页面,它展示了一个很好的 AJAX 包装器示例,其中包含一个 onSuccess 方法:ibm.com/developerworks/library/wa-aj-ajaxhistory/index.html

标签: javascript ajax xmlhttprequest


【解决方案1】:

XHR level 2 跨域实现了除onreadystatechange之外的其他事件,即进度事件(指定statechange); loadstart、progress、error、abort、load、loadend

您可以将 onload 事件用作预先检查的就绪状态 4,然后继续检查 XHR 状态(我想是 200 -> 300 || 304)

【讨论】:

  • OP说onload,你指的是load,是哪个?
  • "load" 是事件名称,监听它的属性是"onload"。想一想:request.onload = function... 和 request.addListener("load", function...)
猜你喜欢
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多