From 1e620109d7bd3f77f770f5dbe22f3ef616fa0bb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Fri, 17 Nov 2006 09:56:30 +0000 Subject: [PATCH] Fixed an issue with getJSON (type was not correctly passed on when data was ommited); Added more options to $.ajax to provide more flexibility (bug #371) --- build/test/data/testsuite.css | 4 ++-- src/ajax/ajax.js | 29 ++++++++++++++++++----------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/build/test/data/testsuite.css b/build/test/data/testsuite.css index 40039f49..58eb610f 100644 --- a/build/test/data/testsuite.css +++ b/build/test/data/testsuite.css @@ -8,5 +8,5 @@ h2 { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: p.result { margin-left: 1em; } #banner { height: 2em; } -#banner.pass { background-color: green } -#banner.fail { background-color: red; } \ No newline at end of file +div.pass { background-color: green; } +div.fail { background-color: red; } \ No newline at end of file diff --git a/src/ajax/ajax.js b/src/ajax/ajax.js index f9058df0..198685c0 100644 --- a/src/ajax/ajax.js +++ b/src/ajax/ajax.js @@ -342,7 +342,6 @@ jQuery.extend({ get: function( url, data, callback, type, ifModified ) { // shift arguments if data argument was ommited if ( data && data.constructor == Function ) { - type = callback; callback = data; data = null; } @@ -466,11 +465,7 @@ jQuery.extend({ * @cat AJAX */ getJSON: function( url, data, callback ) { - if(callback) - jQuery.get(url, data, callback, "json"); - else { - jQuery.get(url, data, "json"); - } + jQuery.get(url, data, callback, "json"); }, /** @@ -597,8 +592,6 @@ jQuery.extend({ * * (String) url - The URL of the page to request. * - * (String) data - Data to be sent to the server. If converted to a query - * string, if not already a string. Is appended to the url for GET-requests. * * (String) dataType - The type of data that you're expecting back from * the server (e.g. "xml", "html", "script", or "json"). @@ -627,6 +620,18 @@ jQuery.extend({ * function gets passed two arguments: The XMLHttpRequest object and a * string describing the type the success of the request. * + * (String) data - Data to be sent to the server. Converted to a query + * string, if not already a string. Is appended to the url for GET-requests. + * Override processData option to prevent processing. + * + * (String) contentType - When sending data to the server, use this content-type, + * default is "application/x-www-form-urlencoded", which is fine for most cases. + * + * (Boolean) processData - By default, data passed in as an object other as string + * will be processed and transformed into a query string, fitting to the default + * content-type "application/x-www-form-urlencoded". If you want to send DOMDocuments, + * set this option to false. + * * @example $.ajax({ * type: "GET", * url: "test.js", @@ -708,14 +713,16 @@ jQuery.extend({ success: null, error: null, dataType: null, + url: null, data: null, - url: null + contentType: "application/x-www-form-urlencoded", + processData: true }, s); // if data available if ( s.data ) { // convert data if not already a string - if (typeof s.data != 'string') + if (s.processData && typeof s.data != 'string') s.data = jQuery.param(s.data); // append data to url for get requests if( s.type.toLowerCase() == "get" ) @@ -737,7 +744,7 @@ jQuery.extend({ // Set the correct header, if data is being sent if ( s.data ) - xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xml.setRequestHeader("Content-Type", s.contentType); // Set the If-Modified-Since header, if ifModified mode. if ( s.ifModified )