Fix for bug #1638, where a non-string data could break an Ajax request.
authorJohn Resig <jeresig@gmail.com>
Thu, 18 Oct 2007 00:07:45 +0000 (00:07 +0000)
committerJohn Resig <jeresig@gmail.com>
Thu, 18 Oct 2007 00:07:45 +0000 (00:07 +0000)
src/ajax.js

index 8261b44..09aba14 100644 (file)
@@ -174,12 +174,12 @@ jQuery.extend({
                }
 
                // Build temporary JSONP function
-               if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
+               if ( s.dataType == "json" && (s.data && jsre.test( s.data ) || s.url.match(jsre)) ) {
                        jsonp = "jsonp" + jsc++;
 
                        // Replace the =? sequence both in the query string and the data
                        if ( s.data )
-                               s.data = s.data.replace(jsre, "=" + jsonp);
+                               s.data = (s.data + "").replace(jsre, "=" + jsonp);
                        s.url = s.url.replace(jsre, "=" + jsonp);
 
                        // We need to make sure