gpt4 book ai didi

javascript - 使用 jQuery.ajax 的 HEADERS_RECEIVED 的 readState 事件

转载 作者:行者123 更新时间:2023-11-28 07:43:50 25 4
gpt4 key购买 nike

使用 native XMLHttpRequest对象,可以将事件监听器添加到 onreadystatechange事件,并在 readyState 时收到通知是 2 ,或HEADERS_RECEIVED 。这很有用,因为这可以在长传输完成之前读取 HTTP 响应 header 。

然而,在 jQuery 的 AJAX 包装器中,似乎没有任何方法可以做到这一点。 jQuery.ajax API documentation实际上说了以下内容。

No onreadystatechange mechanism is provided, however, since done, fail, always, and statusCode cover all conceivable requirements.

除非我弄错了,否则所有列出的回调都会在收到整个请求后触发,这可能是在 header 可用之后很长一段时间,并且 readyState2 .

有没有办法给 onreadystatechange 添加回调和/或readyState 2当使用 jQuery 的 AJAX 包装器时,无需轮询 readyState属性(property)?

我想可以轮询 readyState使用 setInterval 的 AJAX 对象的属性,但出于显而易见的原因,我认为这不是一个真正的解决方案。我也不认为修改 jQuery 的核心是一个真正的解决方案。

更新:

另一位 SO 用户引导我访问 this question 。不幸的是,这些答案似乎都不起作用。修改 jQuery 并不是真正的解决方案。使用 jQuery 创建 XHR 对象有点违背了目的。而最后一个答案根本不起作用。事实上,整个问题看起来都是针对过时的 jQuery。

最佳答案

嗯,简短的回答是,由于旧版浏览器的兼容性问题,jQuery 不提供此功能。为了解决这些问题,jQuery 只是将标准降低到最低公分母。

稍微长一点的答案是它可以使用 beforeSendxhr 方法进行猴子修补,但这并不是微不足道的,特别是当您考虑遗留和跨浏览器兼容性。为了减轻疼痛,I've create a jQuery plugin就是这样。

关于javascript - 使用 jQuery.ajax 的 HEADERS_RECEIVED 的 readState 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com