]> source.dussan.org Git - jquery.git/commitdiff
Ajax: $.post and $.get can now take an options object
authorGeorge Mauer <gmauer@gmail.com>
Tue, 6 Jan 2015 03:00:12 +0000 (21:00 -0600)
committerDave Methvin <dave.methvin@gmail.com>
Mon, 12 Jan 2015 01:47:20 +0000 (20:47 -0500)
Fixes gh-1986
Closes gh-1995
(cherry picked from commit 89ce0af2cf7f001647e74fc1de92ce94a51fd5c2)

src/ajax.js
test/unit/ajax.js

index d8450e1c3e159379579bd65577b867aba462e40a..d2b40d338ea941dafc1feb35490320fc463d04d6 100644 (file)
@@ -798,13 +798,14 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
                        data = undefined;
                }
 
-               return jQuery.ajax({
+               // The url can be an options object (which then must have .url)
+               return jQuery.ajax( jQuery.extend({
                        url: url,
                        type: method,
                        dataType: type,
                        data: data,
                        success: callback
-               });
+               }, jQuery.isPlainObject( url ) && url ) );
        };
 });
 
index 35db616997a979ec6b0b461750eb79fda82f55c1..89161a92845e2150904abbb152486b93f6779abd 100644 (file)
@@ -2050,6 +2050,26 @@ module( "ajax", {
                });
        });
 
+       asyncTest( "jQuery[get|post]( options ) - simple with xml", 2, function() {
+               jQuery.when.apply( jQuery,
+                       jQuery.map( [ "get", "post" ] , function( method ) {
+                               return jQuery[ method ]({
+                                       url: url( "data/name.php" ),
+                                       data: {
+                                               "xml": "5-2"
+                                       },
+                                       success: function( xml ) {
+                                               jQuery( "math", xml ).each(function() {
+                                                       strictEqual( jQuery( "result", this ).text(), "3", "Check for XML" );
+                                               });
+                                       }
+                               });
+                       })
+               ).always(function() {
+                       start();
+               });
+       });
+
 //----------- jQuery.active
 
        test( "jQuery.active", 1, function() {