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

Loading…
Cancel
Save