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

时间:2015-03-27 15:45:12

标签: javascript xmlhttprequest

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

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

我正在使用XHR将图像作为blob获取,因此显然jQuery的Ajax不是一个选项。所有这些都在我的用户手册中使用,而不是在网站上使用,所以我不知道,也许全球变量根本不是问题。

1 个答案:

答案 0 :(得分:1)

不,发送的数据不可用作XHR对象的属性。它应该很快被垃圾收集起来。

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

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