jqXHR.statusText 'abort' vs 'canceled' 中止 XHR 时
jqXHR.statusText 'abort' vs 'canceled' when aborting the XHR
jQuery.ajax
使用的jqXHR
对象有一个属性statusText
,在中止XHR时可以有两个值:canceled
和abort
。什么时候用前者,什么时候用后者?
这里是ajax.js的相关源码:
// Default abort message
strAbort = "canceled",
// Fake xhr
jqXHR = {
...
// Cancel the request
abort: function( statusText ) {
var finalText = statusText || strAbort;
if ( transport ) {
transport.abort( finalText );
}
done( 0, finalText );
return this;
}
};
...
// Apply prefilters
inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
// If request was aborted inside a prefilter, stop there
if ( state === 2 ) {
return jqXHR;
}
...
// aborting is no longer a cancellation
strAbort = "abort";
上面写着如果你在prefilter中中止XHR请求,那么statusText
就是canceled
,否则就是abort
。
jQuery.ajax
使用的jqXHR
对象有一个属性statusText
,在中止XHR时可以有两个值:canceled
和abort
。什么时候用前者,什么时候用后者?
这里是ajax.js的相关源码:
// Default abort message
strAbort = "canceled",
// Fake xhr
jqXHR = {
...
// Cancel the request
abort: function( statusText ) {
var finalText = statusText || strAbort;
if ( transport ) {
transport.abort( finalText );
}
done( 0, finalText );
return this;
}
};
...
// Apply prefilters
inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
// If request was aborted inside a prefilter, stop there
if ( state === 2 ) {
return jqXHR;
}
...
// aborting is no longer a cancellation
strAbort = "abort";
上面写着如果你在prefilter中中止XHR请求,那么statusText
就是canceled
,否则就是abort
。