84 Commits
Author SHA1 Message Date
jaubourg 33de9c5597 Makes prefilters and transport inspection more robust and uses better variable names for readability. 2011-01-24 04:22:46 +01:00
jaubourg 02ca45573b Revised internal implementation of ajaxPrefilter() and ajaxTransport(). Everything is shorter and more efficient now. Also fixes a couple spacing issues that remained. 2011-01-23 22:03:24 +01:00
jaubourg ee22c8b34b More code style fixes. 2011-01-23 20:46:09 +01:00
jaubourg dd5bf42122 Apply JQuery Core Style Guidelines to ajax.js and ajax/*.js, 2011-01-23 05:51:41 +01:00
jaubourg 30082d9eba Fixes some coding style issues in core.js. In jQuery.fn.ready(), simplifies the whole code (for better backward compatibility) and removes redefinition of the function itself (in order not to clash with proxying). Also, in jQuery.when(), removes unnecessary closure and early rejection test and makes use of then instead of done/fail (better interoperability). 2011-01-23 05:01:36 +01:00
jaubourg bea4815294 Re-organizes ajax.js: prefilters and transports are no longer stored in ajaxSettings (their structure is not handled correctly by extend() and was causing some overhead when constructing the final options map in ajax()); base function for ajaxPrefilter and ajaxTransport has been renamed and split in two (one for inspection, one for addition); response/dataType determination and data conversion logics have been externalized from the ajax() internal callback; data conversion no longer sets responseXXX fields; some minor re-formatting and simplifications. 2011-01-22 04:45:20 +01:00
jaubourg dc2e7317a9 Replaces "text in-between" technique with a full-fledged one-level transitive search for converters (unit tests added). Also cleans up auto dataType determination and adds converter checks in order to guess the best dataType possible. 2011-01-21 03:58:28 +01:00
jaubourg 3dbd600e19 Moves determineResponse logic into main ajax callback. Puts responseXXX fields definitions into ajaxSettings. 2011-01-20 19:40:51 +01:00
jaubourg 8ad2b31ff6 Removes misleading comment. 2011-01-20 18:50:47 +01:00
jaubourg f2b0c77dc8 Merge branch 'master' of github.com:jquery/jquery 2011-01-20 17:52:10 +01:00
jaubourg a7cb93bee5 Renames Deferred's fire and fireReject methods as resolveWith and rejectWith respectively. 2011-01-20 17:51:57 +01:00
jaubourg ef86694ada Renames determineDataType as determineResponse. Makes it more generic as a first step into integrating the logic into the main ajax done callback. Also fixes some comments in ajax/xhr.js. 2011-01-20 17:38:21 +01:00
jaubourg 3e1d3d0f21 Revises the way arguments are handled in ajax. 2011-01-20 16:22:36 +01:00
jaubourg 9ab00a712f Makes sure statusCode callbacks are ordered in the same way success and error callbacks are. Unit tests added. 2011-01-20 15:39:30 +01:00
jaubourg 64e1cdbb95 Cleans up and simplifies code shared by ajaxPrefilter and ajaxTransport. Removes chainability of ajaxSetup, ajaxPrefilter and ajaxTransport. Also makes sure context is handled properly by ajaxSetup (unit test added). 2011-01-20 04:12:15 +01:00
jaubourg 96b00a4935 Moves active counter test after all other ajax tests where it should be. 2011-01-19 18:44:21 +01:00
jaubourg 44f3a1b405 Moves things around to make jsLint happier. 2011-01-19 18:36:42 +01:00
jaubourg 7d89d3c072 Fixes crossDomain test so that it assumes port to be 80 for http and 443 for https when it is not provided. 2011-01-19 18:35:40 +01:00
jaubourg 1cecfa1ece Moves determineDataType into ajaxSettings so that it is accessible to transports without the need for a second argument and so that we can now pass the original options to the transport instead. Also ensures the original options are actually propagated to prefilters (they were not). 2011-01-19 18:16:29 +01:00
jaubourg 3ea366401f Re-adds hastily removed variable and simplifies statusCode based callbacks handling. 2011-01-19 17:51:33 +01:00
jaubourg 7947cd77e4 Use undefined instead of 0 to deference transport for clarity. 2011-01-19 17:24:56 +01:00
jaubourg d343bfe528 Removes unnecessary test and ensures getResponseHeader returns null if the header does not exist. 2011-01-19 17:21:51 +01:00
jaubourg bd6eb849ee Revised how context is determined and removed unnecessary "parameter as variable" trick. 2011-01-19 17:06:33 +01:00
jaubourg 92c3d87a9c Moved ajaxSettings.xhr definition together with support.ajax and support.cors determination into ajax/xhr.js. 2011-01-19 16:55:26 +01:00
jaubourg ac2e731b2d Added unit tests to check and demonstrate new jQuery.Deferred() works. 2011-01-17 17:52:30 +01:00
jaubourg 5798446b98 Put the split to get the list of promise methods out of the promise method itself and also switched from jQuery.each to a while loop to remove as much overhead as possible. Thanks go to scott_gonzalez for reminding me of this. 2011-01-16 18:33:32 +01:00
jaubourg c272f5f7da Implements joined jQuery.when statements. Makes it so calling jQuery.when with no parameter returns a resolved promise. Ensures promise method on promises supports the promise(obj) signature. Ensures a deferred and its promise always return the same promise (itself for the promise). Unit tests provided. 2011-01-16 17:41:39 +01:00
jaubourg cfca6d3836 Fixed the ajax test regarding the jsonp option set to false and added a test to control the prefilter actually does not tamper with the url. 2011-01-16 05:36:20 +01:00
jaubourg 0e93b2e24c Revised jsonp unit tests and added a test for when the jsonp option is set to false. 2011-01-16 05:27:16 +01:00
jaubourg 158fa822de Setting the jsonp option to false now inhibits any url manipulation regarding the callback. 2011-01-16 05:26:46 +01:00
jaubourg f74b844989 The script prefilter now forces cross-domain requests type to GET. 2011-01-16 05:25:45 +01:00
jaubourg 914aa3d66b Makes it so a prefilter can change the type of a request. 2011-01-16 05:24:14 +01:00
jaubourg 21143c3b21 Removed internal dataTypes option and added headers & crossDomain options into commented out options of ajaxSettings. 2011-01-16 03:05:03 +01:00
jaubourg 8ab23aec2c Fixes #2994. Not finding a transport now fires the error callbacks and doesn't make ajax return false. Had to revise how jsonp and script prefilters & transports work (better separation of concerns). Also took the opportunity to revise jXHR getRequestHeader and abort methods and enabled early transport garbage collection when the request completes. 2011-01-16 02:57:39 +01:00
jaubourg a8fa5f2ec1 Moved jQuery.ajax.prefilter and jQuery.ajax.transport to jQuery.ajaxPrefilter and jQuery.ajaxTransport so that proxying the ajax method doesn't turn into a nightmare. Thanks go to scott_gonzalez and DaveMethvin for pointing out the issue. Also made ajaxSetup return "this" to enable chainable definitions -- jQuery.ajaxSetup(...).ajaxPrefilter(...).ajaxTransport(...). 2011-01-13 18:33:24 +01:00
jaubourg 44fc87f66c Fixes #4964. Adds a statusCode object together with a new statusCode method on the jXHR object (deferred behaviour). They accept a map of statusCode/callback(s). Callbacks are fired when the status code of the response correponds to the key (as a success or an error callback depending on how the request completed). Unit tests added. 2011-01-13 17:01:25 +01:00
jaubourg 57956152d8 Removed xhr pooling since failing cross-domain requests leaves the xhr object in an undefined state in Firefox. Also rewrote comments related to the active xhr list so that they make sense. 2011-01-13 16:58:16 +01:00
jaubourg 667a3b31e6 Reworked script and xhr abort logic to take advantage of the fact jXHR.abort will complete the request itself if not done already. 2011-01-13 02:05:39 +01:00
jaubourg b07d43c649 Cleans up statusText handling and simplifies 304 notmodified logic. 2011-01-13 01:43:42 +01:00
jaubourg 97b244312e Removes unnecessary variables and adds much needed comments into the data conversion logic in ajax. 2011-01-13 01:18:46 +01:00
jaubourg ed1144816b Fixes a regression by calling dataFilter with the second argument set as the dataType. 2011-01-13 00:49:58 +01:00
jaubourg e9fb7d5be6 Gets rid of a var statement by moving variable declarations up. 2011-01-13 00:41:10 +01:00
jaubourg e221d39e98 Script transport now uses ajaxSetup to define script dataType. 2011-01-12 18:54:15 +01:00
jaubourg 14b07ec5de AjaxSetup now uses deep extend internally to accomodate map structured options. 2011-01-12 18:53:00 +01:00
jaubourg 0c51e9d55f Fixes #4897. Added ?? as a context-insensitive placeholder for the callback name of a JSONP request. Unit tests provided. 2011-01-12 18:36:00 +01:00
jaubourg f83cdc3c4c Yet another missing semicolon! 2011-01-11 23:43:02 +01:00
jaubourg 6504d4f700 Fixes #6230. Added a unit test to control that, since the ajax rewrite, setting the Accept header actually replaced the previous value and didn't append to it (tested in Safari 4.0.4 for which the problem was specifically reported). 2011-01-11 23:01:18 +01:00
jaubourg 5a721cf31b Fixes 4825. jQuery.fn.load: use the jXHR's Promise interface to get the actual response in case ajaxSettings contains a dataFilter. Unit test added. 2011-01-11 20:02:33 +01:00
jaubourg 84319aa4a3 Fixes a race condition in JSONP Local test. 2011-01-10 00:52:20 +01:00
jaubourg 1d1d4fe112 Moved unload abort code so that the event is only bound if the xhr transport is used. Fixes #5280. 2011-01-09 22:20:58 +01:00
jaubourg 8c8bd3bf6a Fixes #5812. =? will be detected even when it has been escaped during data serialization. 2011-01-09 21:48:52 +01:00
jaubourg 62a1a1a8fa Fixes #5803. Reworked jsonp prefilter so that it sets the dataType as jsonp and recognizes requests with originalSettings having jsonp or jsonpCallback to be jsonp. Moved default jsonp option value into ajaxSettings. Attached the transport to "jsonp" which avoids unnecessary testing. Transport factory sets dataType back to json for proper data conversion. 2011-01-09 21:19:27 +01:00
jaubourg 0f28835ee9 Make it so prefilters get access to the original settings. 2011-01-09 20:31:15 +01:00
jaubourg 7bc5386230 Simplified cross-domain detection tests. 2011-01-09 17:27:29 +01:00
jaubourg 5a5f67800b Fixes #5955. Option crossDomain now forces ajax to consider a request as cross-domain even when it is not. Useful for when servers issue redirects to cross-domain urls. Unit test added. 2011-01-09 16:50:13 +01:00
jaubourg c55a76a23f Make sure prefilters have been called and transport has been selected before sending any global event (in case the "global" option has been changed). 2011-01-09 16:32:51 +01:00
jaubourg 63487505c6 Added a test for retrying a request on error using jQuery.ajax(this). Works as intended. Fixes #7461. 2011-01-09 06:19:27 +01:00
jaubourg afefb4f3d2 Fixes #7465. Reworked the regexp and associated test for cross-domain detection so that it now includes ports. Added cross-domain detection tests for protocol, hostname and port. 2011-01-09 06:01:00 +01:00
jaubourg d515068ee8 Fixes #7868. ResponseText is now properly propagated for error callbacks. 2011-01-09 04:53:29 +01:00
jaubourg 69497c3fd7 Fixes #7881. Setting contentType to false will prevent the Content-Type header from being sent. Unit test added. 2011-01-09 04:28:42 +01:00
jaubourg 98c6c4b2b0 Added a simple cache for xhr objects in the xhr transport. 2011-01-09 04:03:00 +01:00
jaubourg 368f2441f6 Added missing commas. 2011-01-07 15:52:58 +01:00
jaubourg 1ca82ccd94 Renamed "complete" to "done" in order to avoid conflicts with jXHR.complete. 2011-01-06 01:26:06 +01:00
jaubourg 47e4cc1a0f Fixed mixing of tabs & spaces to make JSLint happier. 2011-01-06 01:18:03 +01:00
jaubourg c43b078c69 Renamed src/transports to src/ajax (in case we need prefilters in the future and to avoid a separate prefilters directory). 2011-01-06 01:17:31 +01:00
jaubourg cbf591152c "then" renamed "complete" and new "then" method defined using "complete" and "fail" internally. The API is still symetrical (complete/fail), still promotes AOP but is also now Promise/A compliant. Changed unit tests and ajax module accordingly. 2011-01-05 04:29:30 +01:00
jaubourg 7e2810fa95 Merge branch 'deferred' of github.com:jquery/jquery into deferred
Conflicts:
	Rakefile
	src/ajax.js
2010-12-31 04:21:08 +01:00
jaubourg 6fb9759a75 Simplified the way a Promise is tested for (removed promiseMarker). Removed isCancelled helper method from _Deferred, wasn't used nor tested. Reworked jQuery.Deferred and removed unnecessary variables. Also ensured a Promise will return itself when asked for a Promise. Finally, the jQuery.when tests have been revamped. 2010-12-31 04:15:15 +01:00
jaubourg 3c6f1380fa Revised conversion logic to handle converter equal to true properly. 2010-12-31 04:15:12 +01:00
jaubourg 6dbffb8596 Introduced a new promise method on deferreds that returns an immutable object (exposing then, fail, isResolved, isRejected and promise itself only). Remove $.isDeferred and moved logic directly into $.when. Made sure $.when returns a promise by using promise(). Used promise() in ajax code too. 2010-12-31 04:15:11 +01:00
jaubourg 6165cc45b7 Renamed several ajaxSettings options. Removed cors test, fixed failing cors test. 2010-12-31 04:15:09 +01:00
jaubourg 2a5c16f217 Revised logic in data conversion to account for when dataFilter modifies the dataTypes list. 2010-12-31 04:13:42 +01:00
jaubourg 981d1e08eb Removed re-usability from jXHR object (no more open, send & onreadystatechange support). Streamlined the implementation and put it back into ajax.js (removed xhr.js in the process). Went back to a more simple & direct approach to options handling (keeping much room to further minification-related optimizations). Code is cleaner, smaller & faster. Removed & edited unit tests accordingly. All build files have had xhr.js removed. 2010-12-31 04:13:40 +01:00
jaubourg 6f53be1839 Removed dataCheckers, added true as possible value for dataConverters indicating dataType equivalence (ie. no conversion has to be performed). 2010-12-31 04:05:58 +01:00
jaubourg 7b1e873cd9 Simplified the way a Promise is tested for (removed promiseMarker). Removed isCancelled helper method from _Deferred, wasn't used nor tested. Reworked jQuery.Deferred and removed unnecessary variables. Also ensured a Promise will return itself when asked for a Promise. Finally, the jQuery.when tests have been revamped. 2010-12-30 17:06:53 +01:00
jaubourg 64902e0345 Merge branch 'master' of github.com:jquery/jquery into deferred 2010-12-30 04:43:31 +01:00
jaubourg dfa5707306 Fix for #7865. Scripts onload handler passes event as first parameter so statusText is now passed as second argument for aborts. 2010-12-30 04:41:52 +01:00
jaubourg 7490eb4f8e Revised conversion logic to handle converter equal to true properly. 2010-12-29 18:44:45 +01:00
jaubourg 54d965ffa5 Introduced a new promise method on deferreds that returns an immutable object (exposing then, fail, isResolved, isRejected and promise itself only). Remove $.isDeferred and moved logic directly into $.when. Made sure $.when returns a promise by using promise(). Used promise() in ajax code too. 2010-12-28 04:13:44 +01:00
jaubourg 8c9d32723a Renamed several ajaxSettings options. Removed cors test, fixed failing cors test. 2010-12-28 02:30:51 +01:00
jaubourg 97b32d7830 Merge branch 'master' of github.com:jquery/jquery into deferred 2010-12-28 02:02:31 +01:00
jaubourg 85f0dda562 Revised logic in data conversion to account for when dataFilter modifies the dataTypes list. 2010-12-25 23:00:25 +01:00
jaubourg f7ed2aca56 Removed re-usability from jXHR object (no more open, send & onreadystatechange support). Streamlined the implementation and put it back into ajax.js (removed xhr.js in the process). Went back to a more simple & direct approach to options handling (keeping much room to further minification-related optimizations). Code is cleaner, smaller & faster. Removed & edited unit tests accordingly. All build files have had xhr.js removed. 2010-12-25 18:54:37 +01:00
jaubourg 00fb8a9ad6 Removed dataCheckers, added true as possible value for dataConverters indicating dataType equivalence (ie. no conversion has to be performed). 2010-12-25 15:38:33 +01:00