Modify ↓
Ticket #1080 (closed bug: fixed)
$.get(url, callback) overwrites default 'data' parameter
| Reported by: | spinal007 | Owned by: | john |
|---|---|---|---|
| Priority: | major | Milestone: | 1.1.4 |
| Component: | ajax | Version: | 1.1.3 |
| Keywords: | ajax data | Cc: | |
| Blocking: | Blocked by: |
Description (last modified by john) (diff)
Please see the code and comments below for explanation...
// Consider the following default settings
$.ajaxSetup({
data:{'var1':'A', 'var2':'B'}
});
$(document.body).click(function(){
// TEST 1
$.get('/test1/', function(r){ });
//RESULT: GET http://localhost/test1/
//WRONG: Missing var1=A&var2=B
// TEST 2
$.get('/test2/', null, function(r){ });
//RESULT: GET http://localhost/test2/
//WRONG: Missing var1=A&var2=B
// TEST 3
$.get('/test3/', {}, function(r){ });
//RESULT: GET http://localhost/test3/?
//WRONG: Missing var1=A&var2=B
// TEST 4
$.get('/test4/', {'var3':'C'});
//RESULT: GET http://localhost/test4/?var3=C
//WRONG: Missing var1=A&var2=B
// TEST 5
$.get('/test5/');
//RESULT: GET http://localhost/test5/
//WRONG: Missing var1=A&var2=B
});
Change History
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
Note: See
TracTickets for help on using
tickets.

I'm not sure I agree with test 2, 3 and 4. Are you suggesting that the default data is *always* added to the request url? That's not how the other options work. For all the other options, values that are provided on the $.get call override those provided in ajaxSettings. We could achieve the same behavior using this as the first line in $.ajax:
and changing the line in $.get that sets data = null to