Bläddra i källkod

Fix abort with JSONP

We now check that the `abort` method actually exists before aborting
the request, as JSONP does not include the `abort` method because
a JSONP request technically cannot be aborted.

This closes https://github.com/select2/select2/issues/3217.
Kevin Brown 10 år sedan
förälder
incheckning
e7498987a5
5 ändrade filer med 18 tillägg och 10 borttagningar
  1. 6 4
      dist/js/select2.full.js
  2. 0 0
      dist/js/select2.full.min.js
  3. 6 4
      dist/js/select2.js
  4. 0 0
      dist/js/select2.min.js
  5. 6 2
      src/js/select2/data/ajax.js

+ 6 - 4
dist/js/select2.full.js

@@ -1668,8 +1668,6 @@ S2.define('select2/selection/allowClear',[
   };
 
   AllowClear.prototype._handleClear = function (_, evt) {
-    console.log(arguments);
-
     // Ignore the event if it is disabled
     if (this.options.get('disabled')) {
       return;
@@ -3275,8 +3273,12 @@ S2.define('select2/data/ajax',[
     var matches = [];
     var self = this;
 
-    if (this._request) {
-      this._request.abort();
+    if (this._request != null) {
+      // JSONP requests cannot always be aborted
+      if ($.isFunction(this._request.abort)) {
+        this._request.abort();
+      }
+
       this._request = null;
     }
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/js/select2.full.min.js


+ 6 - 4
dist/js/select2.js

@@ -1668,8 +1668,6 @@ S2.define('select2/selection/allowClear',[
   };
 
   AllowClear.prototype._handleClear = function (_, evt) {
-    console.log(arguments);
-
     // Ignore the event if it is disabled
     if (this.options.get('disabled')) {
       return;
@@ -3275,8 +3273,12 @@ S2.define('select2/data/ajax',[
     var matches = [];
     var self = this;
 
-    if (this._request) {
-      this._request.abort();
+    if (this._request != null) {
+      // JSONP requests cannot always be aborted
+      if ($.isFunction(this._request.abort)) {
+        this._request.abort();
+      }
+
       this._request = null;
     }
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/js/select2.min.js


+ 6 - 2
src/js/select2/data/ajax.js

@@ -43,8 +43,12 @@ define([
     var matches = [];
     var self = this;
 
-    if (this._request) {
-      this._request.abort();
+    if (this._request != null) {
+      // JSONP requests cannot always be aborted
+      if ($.isFunction(this._request.abort)) {
+        this._request.abort();
+      }
+
       this._request = null;
     }
 

Vissa filer visades inte eftersom för många filer har ändrats