Commit 09022e0b authored by dmethvin's avatar dmethvin Committed by John Resig

Allow DELETE requests to have a content body, and properly serialize data to...

Allow DELETE requests to have a content body, and properly serialize data to the url for HEAD requests. Fixes #7285.
parent 974b5aea
...@@ -4,7 +4,7 @@ var jsc = jQuery.now(), ...@@ -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({ ...@@ -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({ ...@@ -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 ...@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment