Calling load with null as the data parameter now properly issues a GET request, not a POST request. Unit tests added. Fixes #12234.

This commit is contained in:
jaubourg 2012-08-16 16:45:18 +02:00
parent aa1350d9e2
commit b292c4c2df
2 changed files with 36 additions and 2 deletions

View File

@ -170,7 +170,7 @@ jQuery.fn.load = function( url, params, callback ) {
params = undefined;
// Otherwise, build a param string
} else if ( typeof params === "object" ) {
} else if ( params && typeof params === "object" ) {
type = "POST";
}

View File

@ -1037,11 +1037,45 @@ test("global ajaxSettings", function() {
*/
test("load(String)", function() {
expect(1);
expect(2);
stop(); // check if load can be called with only url
jQuery.ajaxSetup({
beforeSend: function() {
strictEqual( this.type, "GET", "no data means GET request" );
}
});
jQuery("#first").load("data/name.html", function() {
start();
});
jQuery.ajaxSetup({
beforeSend: null
});
});
test("load(String,null)", function() {
expect(2);
stop(); // check if load can be called with url and null data
jQuery.ajaxSetup({
beforeSend: function() {
strictEqual( this.type, "GET", "no data means GET request" );
}
});
jQuery("#first").load("data/name.html", null, function() {
start();
});
});
test("load(String,undefined)", function() {
expect(2);
stop(); // check if load can be called with url and null data
jQuery.ajaxSetup({
beforeSend: function() {
strictEqual( this.type, "GET", "no data means GET request" );
}
});
jQuery("#first").load("data/name.html", undefined, function() {
start();
});
});
test("load('url selector')", function() {