aboutsummaryrefslogtreecommitdiffstats
path: root/src/service/xhr.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/xhr.js')
-rw-r--r--src/service/xhr.js101
1 files changed, 52 insertions, 49 deletions
diff --git a/src/service/xhr.js b/src/service/xhr.js
index b2a5bdf2..bd1217b9 100644
--- a/src/service/xhr.js
+++ b/src/service/xhr.js
@@ -171,58 +171,61 @@
</doc:scenario>
</doc:example>
*/
-angularServiceInject('$xhr', function($rootScope, $browser, $error, $log){
- var xhrHeaderDefaults = {
- common: {
- "Accept": "application/json, text/plain, */*",
- "X-Requested-With": "XMLHttpRequest"
- },
- post: {'Content-Type': 'application/x-www-form-urlencoded'},
- get: {}, // all these empty properties are needed so that client apps can just do:
- head: {}, // $xhr.defaults.headers.head.foo="bar" without having to create head object
- put: {}, // it also means that if we add a header for these methods in the future, it
- 'delete': {}, // won't be easily silently lost due to an object assignment.
- patch: {}
- };
+function $XhrProvider() {
+ this.$get = ['$rootScope', '$browser', '$xhr.error', '$log',
+ function( $rootScope, $browser, $error, $log){
+ var xhrHeaderDefaults = {
+ common: {
+ "Accept": "application/json, text/plain, */*",
+ "X-Requested-With": "XMLHttpRequest"
+ },
+ post: {'Content-Type': 'application/x-www-form-urlencoded'},
+ get: {}, // all these empty properties are needed so that client apps can just do:
+ head: {}, // $xhr.defaults.headers.head.foo="bar" without having to create head object
+ put: {}, // it also means that if we add a header for these methods in the future, it
+ 'delete': {}, // won't be easily silently lost due to an object assignment.
+ patch: {}
+ };
- function xhr(method, url, post, success, error) {
- if (isFunction(post)) {
- error = success;
- success = post;
- post = null;
- }
- if (post && isObject(post)) {
- post = toJson(post);
- }
+ function xhr(method, url, post, success, error) {
+ if (isFunction(post)) {
+ error = success;
+ success = post;
+ post = null;
+ }
+ if (post && isObject(post)) {
+ post = toJson(post);
+ }
- $browser.xhr(method, url, post, function(code, response){
- try {
- if (isString(response)) {
- if (response.match(/^\)\]\}',\n/)) response=response.substr(6);
- if (/^\s*[\[\{]/.exec(response) && /[\}\]]\s*$/.exec(response)) {
- response = fromJson(response, true);
+ $browser.xhr(method, url, post, function(code, response){
+ try {
+ if (isString(response)) {
+ if (response.match(/^\)\]\}',\n/)) response=response.substr(6);
+ if (/^\s*[\[\{]/.exec(response) && /[\}\]]\s*$/.exec(response)) {
+ response = fromJson(response, true);
+ }
}
+ $rootScope.$apply(function() {
+ if (200 <= code && code < 300) {
+ success(code, response);
+ } else if (isFunction(error)) {
+ error(code, response);
+ } else {
+ $error(
+ {method: method, url: url, data: post, success: success},
+ {status: code, body: response});
+ }
+ });
+ } catch (e) {
+ $log.error(e);
}
- $rootScope.$apply(function() {
- if (200 <= code && code < 300) {
- success(code, response);
- } else if (isFunction(error)) {
- error(code, response);
- } else {
- $error(
- {method: method, url: url, data: post, success: success},
- {status: code, body: response});
- }
- });
- } catch (e) {
- $log.error(e);
- }
- }, extend({'X-XSRF-TOKEN': $browser.cookies()['XSRF-TOKEN']},
- xhrHeaderDefaults.common,
- xhrHeaderDefaults[lowercase(method)]));
- }
+ }, extend({'X-XSRF-TOKEN': $browser.cookies()['XSRF-TOKEN']},
+ xhrHeaderDefaults.common,
+ xhrHeaderDefaults[lowercase(method)]));
+ }
- xhr.defaults = {headers: xhrHeaderDefaults};
+ xhr.defaults = {headers: xhrHeaderDefaults};
- return xhr;
-}, ['$rootScope', '$browser', '$xhr.error', '$log']);
+ return xhr;
+ }];
+}