http-request.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. (function(exports) {
  2. var publish_version = true;
  3. var server;
  4. var agentName = "useragent"
  5. var userInfo = "userInfoForPay"
  6. var isNeedLogin = false
  7. var openServer;
  8. if(publish_version) { // 生产环境配置
  9. server = "http://www.xmtyw.cn/iot"; // 仕杰
  10. // openServer="http://192.168.131.102:8080/user"; // 伟达
  11. openServer = "http://192.168.131.150:8080"; // 晓阳
  12. } else { // 测试环境配置
  13. // server = "http://192.168.131.202:9099/iot"; // 桃红
  14. // server = "http://192.168.131.24:9099/iot"; // 仕杰
  15. server = "http://172.19.103.88:9099/iot"; // 测试环境
  16. // openServer="http://192.168.131.102:8080/user"; // 伟达
  17. openServer = "http://192.168.131.150:8080"; // 晓阳
  18. }
  19. //保存userAgent
  20. function saveUserAgent(obj) {
  21. if(window.localStorage.getItem(agentName)){
  22. window.localStorage.removeItem(agentName);
  23. }
  24. var userAgent = {
  25. id: obj.id,
  26. token: obj.token || null
  27. }
  28. userAgent = JSON.stringify(userAgent);
  29. window.localStorage.setItem(agentName, userAgent);
  30. return userAgent;
  31. }
  32. function httpGet(url, options, judge) {
  33. var setService = judge ? openServer : server
  34. //发送ajax请求
  35. return new Promise(function(resolve, reject) {
  36. $.ajax(setService + url,
  37. $.extend({}, {
  38. type: 'GET',
  39. dataType: 'JSON',
  40. beforeSend: function(request) {
  41. var userAgent = window.localStorage.getItem(agentName);
  42. request.setRequestHeader(agentName, userAgent);
  43. },
  44. error: function(res) {
  45. top.toastr.error("网络错误无法请求")
  46. reject(res)
  47. },
  48. success: function(res) {
  49. if(isNeedLogin) {
  50. return
  51. }
  52. if(res.status == 998) {
  53. isNeedLogin = true
  54. top.toastr.error(res.errorMsg || "登录失效请重新登录!")
  55. setTimeout(function() {
  56. location.href = "../login/login.html"
  57. }, 500)
  58. return
  59. }
  60. resolve(res)
  61. }
  62. }, options));
  63. })
  64. }
  65. function httpPost(url, options, judge) {
  66. var setService = judge ? openServer : server
  67. //发送ajax请求
  68. return new Promise(function(resolve, reject) {
  69. $.ajax(setService + url,
  70. $.extend({}, {
  71. type: 'POST',
  72. dataType: 'JSON',
  73. beforeSend: function(request) {
  74. var userAgent = window.localStorage.getItem(agentName);
  75. request.setRequestHeader(agentName, userAgent);
  76. },
  77. error: function(res) {
  78. reject(res)
  79. },
  80. success: function(res) {
  81. if(isNeedLogin) {
  82. return
  83. }
  84. if(res.status == 998) {
  85. isNeedLogin = true
  86. top.toastr.error(res.errorMsg || "登录失效请重新登录!")
  87. setTimeout(function() {
  88. location.href = "../login/login.html"
  89. }, 500)
  90. return
  91. }
  92. resolve(res)
  93. }
  94. }, options));
  95. })
  96. }
  97. // 获取异步请求处理Promise对象
  98. function getReqPromise(url, options, reqType, judge) {
  99. var setService = judge ? openServer : server
  100. return new Promise(function(resolve, reject) {
  101. $.ajax(setService + url, {
  102. data: options,
  103. type: reqType,
  104. dataType: 'JSON',
  105. beforeSend: function(request) {
  106. var userAgent = window.localStorage.getItem(agentName);
  107. request.setRequestHeader(agentName, userAgent);
  108. },
  109. error: function(res) {
  110. top.toastr.error("网络错误无法请求")
  111. reject(res)
  112. },
  113. success: function(res) {
  114. if(isNeedLogin) {
  115. return
  116. }
  117. if(res.status == 998) {
  118. isNeedLogin = true
  119. top.toastr.error(res.errorMsg || "登录失效请重新登录!")
  120. setTimeout(function() {
  121. location.href = "../login/login.html"
  122. }, 500)
  123. return
  124. }
  125. resolve(res)
  126. }
  127. })
  128. });
  129. }
  130. /*
  131. * reqs: 请求的参数数组,格式:[{url:'a/xxx', reqType: 'POST', data:{...}},{url:'b/xxx',data:{...}}]
  132. * */
  133. function getReqPromises(reqs, judge) {
  134. if(!reqs || !reqs.length) {
  135. return new Promise(function(resolve, reject) {
  136. resolve([]);
  137. });
  138. }
  139. return Promise.all(_.map(reqs, function(param) {
  140. return getReqPromise(param.url, param.data, param.reqType, judge);
  141. }));
  142. };
  143. function httpGetJson(url, options) {
  144. //发送ajax请求
  145. return new Promise(function(resolve, reject) {
  146. $.ajax(url,
  147. $.extend({}, {
  148. type: 'GET',
  149. dataType: 'JSON',
  150. success: function(res) {
  151. resolve(res)
  152. }
  153. }, options));
  154. })
  155. }
  156. httpRequest = {
  157. server: server,
  158. openServer: openServer,
  159. userInfo: userInfo,
  160. agentName: agentName,
  161. saveAgent: function(obj) {
  162. return saveUserAgent(obj)
  163. },
  164. get: function(url, options, judge) {
  165. return httpGet(url, options, judge)
  166. },
  167. post: function(url, options, judge) {
  168. return httpPost(url, options, judge)
  169. },
  170. getReqPromises: function(reqs, judge) {
  171. return getReqPromises(reqs, judge);
  172. },
  173. getJson:function(url,options){
  174. return httpGetJson(url,options)
  175. }
  176. }
  177. exports.httpRequest = httpRequest;
  178. })(window)