'use strict'; angular.module('app', [ 'ngSanitize','ngStorage', 'oc.lazyLoad', 'ui.router' ]); var app = angular.module('app').config([ '$controllerProvider', '$compileProvider', '$filterProvider', '$provide', function($controllerProvider, $compileProvider, $filterProvider, $provide) { app.controller = $controllerProvider.register; app.directive = $compileProvider.directive; app.filter = $filterProvider.register; app.factory = $provide.factory; app.service = $provide.service; app.constant = $provide.constant; app.value = $provide.value; } ]); app.factory('frameAjaxInterceptor', function($rootScope, $q, $location) { return { 'request' : function(config) { // 判断是否弹出等待框 var wait = config.wait || 0; if (wait > 0) { $.showLoading('业务提交中,请稍后...'); } return config; }, 'requestError' : function(rejection) { return $q.reject(rejection); }, 'response' : function(response) { var wait = (response.config || {}).wait || 0; $.hideLoading(); if (response.data.success == undefined) return response; if (response.data.success == false) { if (response.data.login == false) { $.alert("请退出重新进入公众号!", function() { WeixinJSBridge.call('closeWindow'); }); return; } else { $.alert(response.data.errorMsg, '提示'); } return $q.reject(response); } return response; }, 'responseError' : function(rejection) { var wait = (rejection.config || {}).wait || 0; if (wait > 0) { $.hideLoading(); } // toaster.error('', "服务器发生内部错误,请联系系统管理员"); return $q.reject(rejection); } }; }).config([ '$httpProvider', function($httpProvider) { // 设置http默认信息 $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; $httpProvider.defaults.headers.post['Accept'] = 'application/json, text/javascript, */*; q=0.01'; $httpProvider.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest'; $httpProvider.defaults.transformRequest = [ function(data) { var param = function(obj) { var query = ''; var name, value, fullSubName, subName, subValue, innerObj, i; for (name in obj) { value = obj[name]; if (value instanceof Array) { for (i = 0; i < value.length; ++i) { subValue = $.trim(value[i]); fullSubName = name + '[]'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if (value instanceof Date) { query += encodeURIComponent(name) + '=' + encodeURIComponent($.trim(value.toJSON())) + '&'; } else if (value instanceof Object) { for (subName in value) { subValue = $.trim(value[subName]); fullSubName = name + '[' + subName + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if (value !== undefined && value !== null) { query += encodeURIComponent(name) + '=' + encodeURIComponent($.trim(value)) + '&'; } } return query.length ? query.substr(0, query.length - 1) : query; }; return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data; } ]; $httpProvider.interceptors.push('frameAjaxInterceptor'); } ]);