Allow DELETE requests to have a content body, and properly serialize data to the url for HEAD requests. Fixes #7285.
This commit is contained in:
parent
974b5aeab7
commit
09022e0b09
|
@ -4,7 +4,7 @@ var jsc = jQuery.now(),
|
||||||
rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
|
rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
|
||||||
rselectTextarea = /^(?:select|textarea)/i,
|
rselectTextarea = /^(?:select|textarea)/i,
|
||||||
rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
|
rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
|
||||||
rnoContent = /^(?:GET|HEAD|DELETE)$/,
|
rnoContent = /^(?:GET|HEAD)$/,
|
||||||
rbracket = /\[\]$/,
|
rbracket = /\[\]$/,
|
||||||
jsre = /\=\?(&|$)/,
|
jsre = /\=\?(&|$)/,
|
||||||
rquery = /\?/,
|
rquery = /\?/,
|
||||||
|
@ -271,7 +271,7 @@ jQuery.extend({
|
||||||
s.cache = false;
|
s.cache = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( s.cache === false && type === "GET" ) {
|
if ( s.cache === false && noContent ) {
|
||||||
var ts = jQuery.now();
|
var ts = jQuery.now();
|
||||||
|
|
||||||
// try replacing _= if it is there
|
// try replacing _= if it is there
|
||||||
|
@ -281,8 +281,8 @@ jQuery.extend({
|
||||||
s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : "");
|
s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
// If data is available, append data to url for get requests
|
// If data is available, append data to url for GET/HEAD requests
|
||||||
if ( s.data && type === "GET" ) {
|
if ( s.data && noContent ) {
|
||||||
s.url += (rquery.test(s.url) ? "&" : "?") + s.data;
|
s.url += (rquery.test(s.url) ? "&" : "?") + s.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -289,6 +289,32 @@ test("jQuery.ajax - xml: non-namespace elements inside namespaced elements", fun
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("jQuery.ajax - HEAD requests", function() {
|
||||||
|
expect(2);
|
||||||
|
|
||||||
|
stop();
|
||||||
|
jQuery.ajax({
|
||||||
|
url: url("data/name.html"),
|
||||||
|
type: "HEAD",
|
||||||
|
success: function(data, status, xhr){
|
||||||
|
var h = xhr.getAllResponseHeaders();
|
||||||
|
ok( /Date/i.test(h), 'No Date in HEAD response' );
|
||||||
|
|
||||||
|
jQuery.ajax({
|
||||||
|
url: url("data/name.html"),
|
||||||
|
data: { whip_it: "good" },
|
||||||
|
type: "HEAD",
|
||||||
|
success: function(data, status, xhr){
|
||||||
|
var h = xhr.getAllResponseHeaders();
|
||||||
|
ok( /Date/i.test(h), 'No Date in HEAD response with data' );
|
||||||
|
start();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
test("jQuery.ajax - beforeSend", function() {
|
test("jQuery.ajax - beforeSend", function() {
|
||||||
expect(1);
|
expect(1);
|
||||||
stop();
|
stop();
|
||||||
|
|
Loading…
Reference in a new issue