aboutsummaryrefslogtreecommitdiffstats
path: root/src/Browser.js
diff options
context:
space:
mode:
authorVojta Jina2011-05-03 09:40:39 +0200
committerIgor Minar2011-05-19 09:43:56 -0700
commit9f56af9c15e1096033c91c2619f7f7f0115d0032 (patch)
tree1818ce436a4ea4b80189af5cc28f83dc1e28904b /src/Browser.js
parentc5f0342ad87ba91d43e8b99bfc82039cdbf998a2 (diff)
downloadangular.js-9f56af9c15e1096033c91c2619f7f7f0115d0032.tar.bz2
XHR should add Content-type header only for POST
Sending Content-type header causes JSTD (Jetty) proxy to change GET methods into POST.
Diffstat (limited to 'src/Browser.js')
-rw-r--r--src/Browser.js15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/Browser.js b/src/Browser.js
index 55439762..b10c43cf 100644
--- a/src/Browser.js
+++ b/src/Browser.js
@@ -7,10 +7,14 @@ var XHR = window.XMLHttpRequest || function () {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e3) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
+
+// default xhr headers
var XHR_HEADERS = {
- "Content-Type": "application/x-www-form-urlencoded",
- "Accept": "application/json, text/plain, */*",
- "X-Requested-With": "XMLHttpRequest"
+ DEFAULT: {
+ "Accept": "application/json, text/plain, */*",
+ "X-Requested-With": "XMLHttpRequest"
+ },
+ POST: {'Content-Type': 'application/x-www-form-urlencoded'}
};
/**
@@ -103,8 +107,9 @@ function Browser(window, document, body, XHR, $log) {
} else {
var xhr = new XHR();
xhr.open(method, url, true);
- forEach(extend(XHR_HEADERS, headers || {}), function(value, key){
- if (value) xhr.setRequestHeader(key, value);
+ forEach(extend({}, XHR_HEADERS.DEFAULT, XHR_HEADERS[uppercase(method)] || {}, headers || {}),
+ function(value, key) {
+ if (value) xhr.setRequestHeader(key, value);
});
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {