Ticket #1118 (closed feature: duplicate)
Migrate AJAX setRequestHeader() to a mapping in ajaxSettings
| Reported by: | DanSwitzer2 | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | 1.1.3 |
| Component: | ajax | Version: | 1.1.2 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description (last modified by dmethvin) (diff)
Code could be reduced and flexibility increase by adding a "headers" key to the ajaxSettings defaults, which could be used to specify additional headers to send with each AJAX request.
The following documents what changes need to be made:
Add a "headers" key to the ajaxSettings defaults:
ajaxSettings: {
global: true, type: "GET", timeout: 0, contentType: "application/x-www-form-urlencoded", processData: true, async: true, data: null, headers: {"X-Requested-With": "XMLHttpRequest"}
},
Remove the following lines:
Set header so the called script knows that it's an XMLHttpRequest xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
Make sure the browser sends the right content length if ( xml.overrideMimeType )
xml.setRequestHeader("Connection", "close");
Add the following line:
supply any additional mapped headers for( var k in s ) xml.setRequestHeader(k, s[k]);
That's it! This will make it easier to add headers to a request, reduces the code and removes the old "Connection: close" fix for older Gecko-based browsers (which are no longer supported by jQuery anyway.)
-Dan
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.

See also #4453.