Commit Graph

295 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
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
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
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
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
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
14b07ec5de AjaxSetup now uses deep extend internally to accomodate map structured options. 2011-01-12 18:53:00 +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
Dave Methvin
4e86766d54 Change embedded regexp to a variable (for #6876). 2011-01-09 16:22:11 -06:00
jaubourg
0f28835ee9 Make it so prefilters get access to the original settings. 2011-01-09 20:31:15 +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
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
1ca82ccd94 Renamed "complete" to "done" in order to avoid conflicts with jXHR.complete. 2011-01-06 01:26:06 +01:00
Colin Snover
e56de77df9 Cleaning up trailing whitespace again. 2011-01-05 15:44:07 -06: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
Dave Methvin
eed3803c98 When serializing text, encode all line breaks as CRLF pairs per the application/x-www-form-urlencoded specification. Fixes #6876. 2010-12-31 13:56:51 -06: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
unknown
22e28b01e6 Changed dataConverters key format. 2010-12-31 04:05:52 +01:00
jaubourg
d5bb001b9a Rewrote the data conversion logic in ajax. Should be cleaner and faster. 2010-12-31 04:05:48 +01:00
jaubourg
e29ebbc199 Renamed jQuery.xhr.bindTransport as jQuery.xhr.transport. Generalized the implementation and made prefilters use the same logic. Cleaned up code and removed as many loops and each as possible. 2010-12-31 04:05:46 +01:00
jaubourg
fef0f63526 Rewrote the data conversion logic in ajax. Should be cleaner and faster. 2010-12-31 03:56:10 +01:00
jaubourg
4c49c87d4d Renamed jQuery.xhr.bindTransport as jQuery.xhr.transport. Generalized the implementation and made prefilters use the same logic. Cleaned up code and removed as many loops and each as possible. 2010-12-31 03:53:00 +01:00
Colin Snover
3e0cc81504 Clean trailing whitespace from all files. 2010-12-30 00:34:48 -06:00
Ben Alman
78a6f5b152 Removed unnecessary upper/lowercase, it's all just lowercase now (since $.ajax will uppercase as-needed). 2010-12-26 22:49:01 +00:00
Ben Alman
1830db4226 WETness getting you down? Fear not, the $.get and $.post methods are now 866% DRYer. This fixes #7847. 2010-12-26 18:52:27 +00:00
Colin Snover
1f92edee20 Fix fix for #6481 introduced at 7862c45ad2 which did not like it when Array.prototype was modified on empty arrays. 2010-12-22 18:54:22 -06:00
jaubourg
ab74d8e6a0 Fix the closure in ajax.js too. 2010-12-10 03:16:50 +01:00
jaubourg
ab3ba4a812 Rewrite of the Ajax module by Julian Aubourg. Some (dated) details can be found here: http://oksoclap.com/6Y26bm1ZsB more details are forthcoming. Fixes #7195. 2010-12-09 13:34:28 -05:00
John Resig
9759e9f6bb Merge branch 'bug6242' of https://github.com/csnover/jquery into csnover-bug6242 2010-12-06 17:23:08 -05:00
John Resig
6c68124928 Merge branch 'bug7531' of https://github.com/csnover/jquery into csnover-bug7531 2010-12-06 17:22:02 -05:00
Colin Snover
238ac5a0aa Fix memory leaks in IE caused by the custom abort function of $.ajax. Fixes bug #6242. 2010-12-03 00:12:52 -06:00
Anton M
8259efe734 Set cache to false as default for script or json requests. Fixes 7578. 2010-11-19 23:14:24 +01:00
Colin Snover
c04500a834 Optimize for size instead of speed. 2010-11-17 14:50:05 -06:00
Colin Snover
2a0c7d702b Coerce s.url to string before calling replace, since replace is also a method of a Location object. Fixes #7531. 2010-11-17 00:59:24 -06:00
John Resig
aa74396976 Merge branch 'bug7422' of https://github.com/csnover/jquery into csnover-bug7422 2010-11-09 12:40:55 -05:00
John Resig
fb48ae8e6c Make sure that when multiple variables are being declared that assignments are each done on their own line. 2010-11-09 11:09:07 -05:00
Colin Snover
e57b73a0ac Ensure that AJAX requests are actually aborted in all browsers. Fix #7422. 2010-11-06 13:52:30 -05:00
John Resig
de58db0cdf Backing out fix for #5803 from 3b50eaca2c. 2010-10-25 17:54:27 -07:00
John Resig
a4fc842019 Merge branch 'jquerymaster' of http://github.com/SlexAxton/jquery into SlexAxton-jquerymaster 2010-10-25 13:06:55 -07:00
dmethvin
09022e0b09 Allow DELETE requests to have a content body, and properly serialize data to the url for HEAD requests. Fixes #7285. 2010-10-25 13:06:02 -07:00
rwldrn
3b50eaca2c Fixes #7229 and #5803 2010-10-24 12:18:33 -04:00
Alex Sexton
a58f8f22d1 Forces lower case comparison of protocol and host when determining whether the request is remote or local. Fixes #6908 2010-10-20 21:12:47 -07:00
John Resig
497fc9849e Bringing back the change from 80a4178af9, adapted to handle both the function collision and the issue mentioned in #7196. 2010-10-15 01:29:38 -04:00
jeresig
80a4178af9 Reverting commit 39addc87a3 after a report of problems. Fixes #7196. 2010-10-14 20:55:40 -04:00
jeresig
d490bcfa7c Oops, still have jQuery.ajax.* on the brain. 2010-10-13 21:25:23 -04:00
Pinhook
39addc87a3 Handle issue with two concurrent JSONP requests that use the same callback name. 2010-10-13 10:30:19 -04:00
John Resig
6245ecb2b9 The world isn't ready for moving the Ajax methods to jQuery.ajax.*. Hope to move them there some day. Fixes #7146. 2010-10-11 18:29:52 -04:00
John Resig
9b655a176b Merge branch 'bug7018' of http://github.com/csnover/jquery into csnover-bug7018 2010-10-09 16:25:55 -04:00
jeresig
da597bcf90 Name the try/catch arg to satisfy JSLint - thanks to @rwldrn in 873c28425f for the catch. 2010-10-09 12:26:44 -04:00
Colin Snover
d2e64979bf Fix bug #7018. 2010-10-06 03:03:28 -05:00
John Resig
873c28425f Make sure we have a fallback when XMLHttpRequest is manually disabled. Fixes #6298. 2010-09-28 10:12:33 -07:00
jeresig
e63fa8beb8 Merge branch 'master' of http://github.com/aakoch/jquery into aakoch-master 2010-09-27 14:49:13 -04:00
Dave Methvin
c4e653237f Make sure that requests without a body don't set contentType, and a zero-length body is sent rather than null. Possible fix for #6811 and #6674. 2010-09-24 17:56:03 -04:00
Dave Methvin
1130beb72b Report correct Error object to handleError. Part of the fix for #6677. 2010-09-24 17:47:37 -04:00
jeresig
700ff05af0 Merge branch 'master' of github.com:jquery/jquery 2010-09-24 17:05:28 -04:00
Dave Methvin
395a032ad8 Use origSettings.context unless it's undefined; for that case use merged settings as context for backcompat with jQuery <1.3. Fixes #6727. 2010-09-24 17:04:54 -04:00
dmethvin
c8c8f8458a For JSON and script requests, set the scriptCharset before the url so IE won't interpret it the wrong way; fixes #4855. 2010-09-25 05:01:31 +08:00
Heungsub Lee
033a4c41e0 Added a default quality of */* for content negotiation. 2010-09-25 05:00:18 +08:00
temp01
7862c45ad2 Serialize keys with empty arrays/object values in jQuery.param(). Fixes #6481. 2010-09-24 16:57:25 -04:00
unknown
a088751a1b Removing the second capture group. After the changes suggested by Jeff Roberson, the second capture group is no longer needed. See
http://stackoverflow.com/questions/3771105/can-someone-tell-me-the-purpose-of-the-second-capture-group-in-the-jquery-rts-reg
2010-09-24 09:37:03 -05:00
jeresig
ab454d9526 Allow # urls to contain #. Thanks to @alvopass in f9f9ee52e1 for the catch. 2010-09-22 14:58:07 -04:00
John Resig
f9f9ee52e1 Make sure that #... are trimmed from Ajax request URLs. Fixes #4987. 2010-09-22 12:52:44 -04:00
jeresig
9dc6e0c572 Applied the RegExp issues reported by Jeff Robinson here: http://jmrware.com/articles/2010/jqueryregex/jQueryRegexes.html Additionally broke out all remaining inline RegExp. Fixes #7062. 2010-09-22 09:16:28 -04:00
John Resig
dc8491defe Scratch that, just punting on Opera and 304s for now - there may not be a good solution here. Fixes #6060. 2010-09-21 16:13:50 -04:00
John Resig
ba9e0fc177 Use a different workaround for detecting when Opera finds a status 304 page. Fixes #6060. 2010-09-21 15:22:34 -04:00
John Resig
959c20f768 Add a flag to verify if a browser supports some form of XHR request. Fixes #7030. 2010-09-13 18:02:33 -04:00
jeresig
bca5765502 Make sure that jQuery works even when the individual modules are loaded separately AND jQuery.noConflict(true) is used. Fixes #7011. 2010-09-08 13:54:33 -04:00
jeresig
c90d609c0d Fixing request data param issue. Thanks to mislav for the patch. Fixes #5123. 2010-06-14 23:08:28 -04:00
jeresig
c34a62f8ab Tweak spacing from last commit. 2010-06-14 23:05:01 -04:00