问题标签 [onreadystatechange]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - XMLHttpRequest.onReadyStateChange 在 Chrome、Firefox、Internet Explorer 中不起作用
我正在使用 Aptana Studio 3 文本编辑器并在 Windows 7 Enterprise OS 上工作。我有以下 AJAX 代码,它在本地系统上无法获取保存在 https 网站上的 JSON 文件。此示例取自 Youtube 视频:
索引.html:
样式.css:
主.js:
这段代码似乎不适用于我的本地机器。我尝试通过在本地机器上使用NodeJs安装 http-server 来运行它,但仍然没有乐趣!
ww3Schools.com上的另一个 JSON AJAX 代码
虽然似乎工作正常。这是 html 文件中的内联 javascript 代码。最初我认为 onReadyStateChange 是无法在 IE、FF、CH 等上运行的罪魁祸首,但是这个网站代码也有 onReadyStateChange 但它工作正常!
还是按钮单击事件处理程序无法正常工作的原因?
我的代码不是内联的,这可能是原因吗?如果没有,我错过了什么或做错了什么?
javascript - 加载 CSSOM 后 onreadystatechange == 是否完全触发?
问题很小很简单:
onreadystatechange == complete
加载 CSSOM 后会触发吗?
请在您的答案中提及一些权威参考,以便我进行交叉检查。谢谢 :-)
javascript - Document.readystate 谎称正在加载谷歌地图画布图像
我正在从 iframe 中打印包含 google maps API v3 地图的页面。我实现了以下代码以确保在打印 iframe 之前页面已完全加载。
}
document.readystate === 'complete'
然而,即使 AFTER确实有 500 毫秒的延迟,页面通常也会使用灰色/空白的谷歌地图画布打印,没有图像。
如果我再次点击 window.print() 而不重新加载页面,那么它会按预期打印带有所有地图图像的 iframe。所以文档就绪状态是在说谎。
除了增加延迟甚至更长之外,我还能做些什么来解决这个问题(我不想这样做,因为它会惩罚人们在内容快速加载时等待很长时间)
javascript - 何时使用 onerror、ontimeout 属性?(XMLHttpRequest)
我使用 XMLHttpRequest 类将有效负载数据从 Web 客户端发送到 Web 服务器。
我想处理如下错误...
- 请求超时(连接超时)
- 500内部服务器错误
- 502错误的网关
- 503服务不可用
我不知道 onstatechange、onerror、ontimeout 属性的明显用法。我不知道单独的 onreadystatechange 是否可以捕获这些错误。
另外,如果我必须使用onerror,ontimeout,我想知道与onreadystatechange有什么区别。
ajax - xhttp.onreadystatechange 返回未定义的 xhttp.responseText
我试图通过从另一个组件调用xhttp.responseText来访问它,但它显示未定义。比我尝试从xtthp.onreadystatechange 外部访问它。它再次显示未定义。请帮助我。我想从另一个 Component( login.component.ts )访问它。
这是文件。
文件数据.component.ts
文件数据.component.html
登录组件.ts
我想通过调用makeRequest来访问responseText。有什么建议吗?我应该怎么做才能在此处访问responseText。
javascript - onreadystatechange func. not working
i have written following ajax code but the onreadystatechange func. is not working within the chkPwd script func....only alert box with hiii 1 is shown on browser
javascript - XMLHttpRequest onreadystatechange 从未为 readyState 0 触发
我设置了通常的 XMLHttpRequest,到目前为止一切正常,我可以检索数据和 readyState 更改并执行各种操作。
但是没有发生的一件事是 readyState 在达到 0 时会触发 onreadystatechange() 函数。
现在我想知道......为什么?
我查看了XMLHttpRequest MDN 条目,但没有提到为什么当 readyState 达到 0 时不应触发 onreadystatechange。我也没有找到关于该主题的其他信息......
片段:
当 XMLHttpRequest 套接字处理完请求后,XMLHttpRequest 实例将具有值 readyState===0,至少 Firefox 的 JS 控制台告诉我这一点。
发出请求后,JS 控制台正确列出了 readyStates 1-4 的日志消息,但没有列出 readyState 0 的消息,不是在请求之前,也不是在请求之后。
理论上,当readyState从4变回0时,不应该触发onreadystatechange()函数吗?在 macOS 上使用当前 FF 和 Safari 以及在 Win 上使用 IE11 进行了检查,到处都是相同的行为,onreadystatechange() 永远不会为 readyState 0 触发。
XMLHttpRequest 是故意不这样做,还是我做错了什么?感谢任何有用的输入。:)
(请不要“使用 jQuery”评论或类似的评论,谢谢。)
更新:
结果表明,在成功或失败的请求完成后,readyState 将永远保持在 4,并在 FF、IE、Safari 中进行了验证。
但是,如果正在进行的请求被中止,readyState 将从 > 0 返回到 0。所以一个 readystatechange 确实发生了,但是 onreadystatechange 没有被触发,在 FF 和 Safari 中验证了这一点。
更新 3:
根据XMLHttpRequest 规范,当 XHR 处于 readyState 3(接收)并被中止时,XHR 应该使用 onreadystatechange 事件将 readyState 设置为 4(完成),发出网络错误,然后在没有onreadystatechange 事件的情况下将 readyState 设置为 0(未发送) .
但是当我中止处于 readyState 3(接收)的 XHR 时,它首先会使用 onreadystatechange 事件和 HTTP 状态 200(OK)将 readyState 设置为 4(完成),然后它会触发 onabort 和 onloadend 并将 readyState 重置为 0( unsent) ...但绝不会触发 onerror 事件。
非常混乱。
javascript - XMLHttpRequest onreadystatechange readyState 1 和 2 之间的长时间延迟
我的 JS 代码正在发送请求并监视“xhr.onreadystatechange”。有时它会收集以下日志,这是预期的:
其他时候它会收集以下日志,这是不期望的:(在这种情况下,readyState 在我的应用程序超时之前的 22 秒内从未更改为 2)
我明白那个:
- readyState 1 表示 xhr.open 被调用但 xhr.send 未被调用
- readyState 2 表示已调用 xhr.send 并收到响应标头
我的问题是:如果 readyState 更改为 1 但从未更改为 2/3/4,那么我的 POST 请求实际上是:
- 从未在线发送(xhr.send 尚未被调用)?如果是这样,可能是什么原因造成的?请求可以被浏览器 JS 引擎中的 xhr.send 丢弃吗?
- 或者,发送到服务器但由于某种原因被卡在那里(因此响应标头尚未准备好)。
请注意,这是在 IE 11 上。
谢谢,
javascript - Uncaught TypeError when invoking callbacks
I had an error that I have managed to fix on my own. Can someone please explain to me why my code wasn’t working and the mechanics of what caused it.
Code is included below:
When I remove the success_cb
callback from the onreadystatechange
function definition the code works fine. Is this an issue that is related to scope?
javascript - IE11 readyState 总是“加载”,DOMContentLoaded 由于非 SSL 内容而永远不会触发
在 IE11 上,当您收到用户提示时
Only secure content is displayed. #Show all content#
readyState 永远不会改变,它总是开启loading
并且事件也不会触发。一旦用户单击Show all content
它就可以正常工作。
不幸的是,我有一个网站无法解析非 SSL 脚本和图像(第三方网站和用户内容),如果它没有加载也没关系,但我需要 DOMContentReady 事件来处理重要且安全加载的 JS。您知道任何解决方法吗?