From 2a0c7d702b83a6b2e40eb79a5d6ea94d74f3090d Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Wed, 17 Nov 2010 00:59:24 -0600 Subject: Coerce s.url to string before calling replace, since replace is also a method of a Location object. Fixes #7531. --- src/ajax.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ajax.js b/src/ajax.js index d10b93112..61b9c438e 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -198,7 +198,10 @@ jQuery.extend({ var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings), jsonp, status, data, type = s.type.toUpperCase(), noContent = rnoContent.test(type); - s.url = s.url.replace( rhash, "" ); + // toString fixes people passing a window.location or + // document.location to $.ajax, which worked in 1.4.2 and + // earlier (bug #7531). It should be removed in 1.5. + s.url = s.url.toString().replace( rhash, "" ); // Use original (not extended) context object if it was provided s.context = origSettings && origSettings.context != null ? origSettings.context : s; -- cgit v1.2.3