javascript - 在 XHR.onreadystatechange 回调中访问通过 XHR.send(data) 发送的数据

标签 javascript xmlhttprequest

是否可以在 XMLHttpRequest 的 onreadystatechange 处理程序中找到作为参数发送到 XMLHttpRequest 的 send(data) 函数的数据?我认为此时它必须存储在它的属性之一中。

我问的原因是因为这个回调调用了另一个需要所述数据的函数,但是直到调用 XHR.send() 之前才知道数据,所以我不能将其放入 XHR 构造函数中。现在我必须为该数据使用全局变量,我想摆脱它。 这是代码片段:https://bpaste.net/show/2150361d3dbe

我使用 XHR 来获取 blob 形式的图像,因此显然 jQuery 的 Ajax 不是一个选项。所有这些都在我的用户脚本中使用,而不是在网站上,所以我不知道,也许全局变量根本不是什么大问题。

最佳答案

不,发送的数据不可用作 XHR 对象的属性。一旦上线,它就应该是可垃圾收集的。

根据您创建 onreadystatechange 回调的方式,data 变量可能仍在作用域内,因此您可以直接访问它(并将其传递给其他函数) .

手动将数据设置为相应 xhr 对象的属性仍然比使用全局变量更好。

关于javascript - 在 XHR.onreadystatechange 回调中访问通过 XHR.send(data) 发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304711/

相关文章:

ios - 在 UIWebView 中编辑同步 ajax 请求的响应

javascript - Firefox 中的跨站点 XmlHttpRequest?

asp.net - 在 asp.net 上处理 XMLHttpRequest 中止

javascript - 如何在 Firefox OS 上创建能够从外部网页获取数据的打包应用程序

javascript - 响应XML为空,javascript

javascript - 如何将rgba数据转换为base64以显示图像

javascript - Google Firestore - 如何在一次往返中通过多个 ID 获取多个文档?

javascript - 如何将 npm 包中的 JS 文件包含到 Nuxt.js 中的单独页面

javascript - 在 ES6 中,当 throw 被调用时,throw 语句下面的代码是否被执行过?

javascript - 迁移到 Cucumber 4 时如何返回 Promise?