jQuery ajaxreadystate 插件
jQuery AJAX 实现有一定的局限性,因为它不提供响应 AJAX 请求期间触发的readystatechange
事件的方法。 jQuery.ajax
API 文档实际上说明了以下内容。
然而,没有提供
onreadystatechange
机制,因为done
、fail
、always
和statusCode
涵盖了所有可能的要求。
虽然此声明对于大多数用例都是正确的,但如果您想在整个请求完成之前访问响应标头或状态代码,或者在流式传输时访问响应正文,该怎么办?
显然,由于浏览器兼容性问题,jQuery 不提供此功能,因此该插件为支持这些功能的浏览器添加了此额外功能(请参阅下面的兼容性说明)。
该插件的工作原理是添加一个新方法jQuery.ajaxreadystate
方法,该方法充当jQuery.ajax
的包装器,扩展功能并更新jqXHR
对象以消除限制并在readyState
更改时更新属性。
您可以像使用jQuery.ajax
一样使用jQuery.ajaxreadystate
,只不过您可以定义一种额外的方法,即readystate
方法。
jQuery . ajaxreadystate ( {
readystate : function ( jqXHR , readyState ) {
}
} ) ;
每次请求触发readystatechange
事件时都会触发此方法,并将传入更新的jqXHR
对象和当前的readyState
。
您可以从此存储库的发布部分下载最新的稳定和精简版本。或者,您可以从包管理器克隆存储库下载。
###完全支持
完全支持以下浏览器。
###部分支持
由于浏览器本身的技术限制,部分支持以下浏览器。注意到兼容性问题。
readyState
为4
之前, responseText
不可用。readyState
3
的一个readystatechange
事件。readyState
为4
之前, responseText
不可用。status
和statusText
在readyState
为4
之前不会更新。getAllResponseHeaders
和getResponseHeader
返回null
直到readyState
为4
。readyState
1
时才会触发readystate
回调。readyState
为4
之前, responseText
不可用。status
和statusText
在readyState
为4
之前不会更新。getAllResponseHeaders
和getResponseHeader
返回null
直到readyState
为4
。getAllResponseHeaders
和getResponseHeader
返回null
直到readyState
为3
。getAllResponseHeaders
和getResponseHeader
返回null
直到readyState
为3
。readyState
3
的一个readystatechange
事件。status
和statusText
在readyState
为3
之前不会更新。readyState
3
的一个readystatechange
事件。status
和statusText
在readyState
为3
之前不会更新。readyState
3
的一个readystatechange
事件。getAllResponseHeaders
和getResponseHeader
返回null
直到readyState
为4
。未测试比列出的版本更旧的浏览器,但可能部分或完全支持。
该插件与 jQuery 1.5+ 和 jQuery 2.0.0+ 兼容。
要创建缩小的构建,请从此存储库的根目录运行此命令。
$ npm run build
如果您发现错误或遇到上面未记录的兼容性问题,请在此存储库的问题部分下打开一个票证。
请参阅 LICENSE.txt
如果此许可证不适合您,请随时与我联系。
如果您发现我的软件有用,请考虑在我的网站 alexomara.com 上捐款。