Browse Source

Store jqXHR in promise object.

Resolve #8139
pull/8145/head
maliming 6 years ago
parent
commit
72770f68a1
  1. 17
      npm/packs/jquery/src/abp.jquery.js

17
npm/packs/jquery/src/abp.jquery.js

@ -1,4 +1,4 @@
var abp = abp || {};
var abp = abp || {};
(function($) {
if (!$) {
@ -99,19 +99,28 @@
options.success = undefined;
options.error = undefined;
return $.Deferred(function ($dfd) {
$.ajax(options)
var xhr = null;
var promise = $.Deferred(function ($dfd) {
xhr = $.ajax(options)
.done(function (data, textStatus, jqXHR) {
$dfd.resolve(data);
userOptions.success && userOptions.success(data);
}).fail(function (jqXHR) {
if(jqXHR.status === 0 || jqXHR.statusText === 'abort') {
//ajax request is abort, ignore error handle.
return;
}
if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') {
abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd);
} else {
abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd);
}
});
});
}).promise();
promise['jqXHR'] = xhr;
return promise;
};
$.extend(abp.ajax, {

Loading…
Cancel
Save