request.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. var tokenKey = "access-token";
  2. var serverUrl = "https://badness.xiuqinews.cn";
  3. import { requst_post_login} from '../../pages/api/index'
  4. // 例外不用token的地址
  5. var exceptionAddrArr = [ '/wx/login',];
  6. //请求头处理函数
  7. function CreateHeader(url, type) {
  8. let header = {}
  9. if (type == 'POST_PARAMS'){
  10. header = {
  11. 'content-type': 'application/x-www-form-urlencoded'
  12. }
  13. }else if(type == 'FormData'){
  14. header = {
  15. 'content-type': 'multipart/form-data'
  16. }
  17. }else{
  18. header = {
  19. 'content-type': 'application/json'
  20. }
  21. }
  22. if (exceptionAddrArr.indexOf(url) == -1) { //排除请求的地址不须要token的地址
  23. let token = wx.getStorageSync(tokenKey);
  24. header.Authorization = token;
  25. }
  26. return header;
  27. console.log(header,'header')
  28. }
  29. //post请求,fomData
  30. function postRequestFormData(url,data){
  31. let header = CreateHeader(url,'FormData');
  32. return new Promise((resolve, reject) => {
  33. wx.request({
  34. url: serverUrl + url,
  35. data: data,
  36. header: header,
  37. method: 'POST',
  38. success: (res => {
  39. if (res.statusCode === 200) {
  40. if(res.data.code==401){
  41. // 重新登陆
  42. wx.login({
  43. success: res => {
  44. const code = res.code;
  45. if(code){
  46. //将code发送到开发者服务器
  47. wx.getUserInfo({
  48. success: res => {
  49. let encryptedData = res.encryptedData;
  50. let iv = res.iv;
  51. let url="https://badness.xiuqinews.cn/wx/login";
  52. requst_post_login(
  53. {
  54. encryptedData: encryptedData,
  55. iv: iv,
  56. code: code
  57. }
  58. ).then(res=>{
  59. if(res.data.data){
  60. wx.setStorage({
  61. key: 'access-token',
  62. data: res.data.data,
  63. })
  64. }else{
  65. }
  66. }).catch(err=>{
  67. console.log('ajax_err',err)
  68. })
  69. }
  70. })
  71. }
  72. }
  73. })
  74. // 重新登陆
  75. }else{
  76. resolve(res)
  77. }
  78. } else {
  79. reject(res)
  80. }
  81. }),
  82. fail: (res => {
  83. reject(res)
  84. })
  85. })
  86. })
  87. }
  88. //post请求,数据在body中
  89. function postRequest(url,data){
  90. let header = CreateHeader(url,'POST');
  91. console.log(header,'header')
  92. return new Promise((resolve, reject) => {
  93. wx.request({
  94. url: serverUrl + url,
  95. data: data,
  96. header: header,
  97. method: 'POST',
  98. success: (res => {
  99. if (res.statusCode === 200) {
  100. if(res.data.code==401){
  101. // 重新登陆
  102. wx.login({
  103. success: res => {
  104. const code = res.code;
  105. if(code){
  106. //将code发送到开发者服务器
  107. wx.getUserInfo({
  108. success: res => {
  109. let encryptedData = res.encryptedData;
  110. let iv = res.iv;
  111. let url="https://badness.xiuqinews.cn/wx/login";
  112. requst_post_login(
  113. {
  114. encryptedData: encryptedData,
  115. iv: iv,
  116. code: code
  117. }
  118. ).then(res=>{
  119. if(res.data.data){
  120. wx.setStorage({
  121. key: 'access-token',
  122. data: res.data.data,
  123. })
  124. }else{
  125. }
  126. }).catch(err=>{
  127. console.log('ajax_err',err)
  128. })
  129. }
  130. })
  131. }
  132. }
  133. })
  134. // 重新登陆
  135. }else{
  136. resolve(res)
  137. }
  138. } else {
  139. reject(res)
  140. }
  141. }),
  142. fail: (res => {
  143. reject(res)
  144. })
  145. })
  146. })
  147. }
  148. //post请求,数据按照query方式传给后端
  149. function postParamsRequest(url, data) {
  150. let header = CreateHeader(url,'POST_PARAMS');
  151. let useurl = url;
  152. return new Promise((resolve, reject) => {
  153. wx.request({
  154. url: serverUrl + useurl,
  155. data: data,
  156. header: header ,
  157. method: 'POST',
  158. success: (res => {
  159. // console.log(res, '1212')
  160. if (res.statusCode === 200) {
  161. if(res.data.code==401){
  162. // 重新登陆
  163. wx.login({
  164. success: res => {
  165. const code = res.code;
  166. if(code){
  167. //将code发送到开发者服务器
  168. wx.getUserInfo({
  169. success: res => {
  170. let encryptedData = res.encryptedData;
  171. let iv = res.iv;
  172. let url="https://badness.xiuqinews.cn/wx/login";
  173. requst_post_login(
  174. {
  175. encryptedData: encryptedData,
  176. iv: iv,
  177. code: code
  178. }
  179. ).then(res=>{
  180. if(res.data.data){
  181. wx.setStorage({
  182. key: 'access-token',
  183. data: res.data.data,
  184. })
  185. }else{
  186. }
  187. }).catch(err=>{
  188. console.log('ajax_err',err)
  189. })
  190. }
  191. })
  192. }
  193. }
  194. })
  195. // 重新登陆
  196. }else{
  197. resolve(res)
  198. }
  199. } else {
  200. reject(res)
  201. }
  202. }),
  203. fail: (res => {
  204. reject(res)
  205. })
  206. })
  207. })
  208. }
  209. //get 请求
  210. function getRequest(url, data) {
  211. let header = CreateHeader(url, 'GET');
  212. // console.log(header,'exceptionAddrArr')
  213. return new Promise((resolve, reject) => {
  214. wx.request({
  215. url: serverUrl + url,
  216. data: data,
  217. header: header,
  218. method: 'GET',
  219. success: (res => {
  220. if (res.statusCode === 200) {
  221. if(res.data.code==401){
  222. // 重新登陆
  223. wx.login({
  224. success: res => {
  225. const code = res.code;
  226. if(code){
  227. //将code发送到开发者服务器
  228. wx.getUserInfo({
  229. success: res => {
  230. let encryptedData = res.encryptedData;
  231. let iv = res.iv;
  232. requst_post_login(
  233. {
  234. encryptedData: encryptedData,
  235. iv: iv,
  236. code: code
  237. }
  238. ).then(res=>{
  239. if(res.data.data){
  240. wx.setStorage({
  241. key: 'access-token',
  242. data: res.data.data,
  243. })
  244. }else{
  245. }
  246. }).catch(err=>{
  247. console.log('ajax_err',err)
  248. })
  249. }
  250. })
  251. }
  252. }
  253. })
  254. // 重新登陆
  255. }else{
  256. resolve(res)
  257. }
  258. }else{
  259. reject(res)
  260. }
  261. }),
  262. fail: (res => {
  263. reject(res)
  264. })
  265. })
  266. })
  267. }
  268. //put请求
  269. function putRequest(url, data) {
  270. let header = CreateHeader(url, 'PUT');
  271. return new Promise((resolve, reject) => {
  272. wx.request({
  273. url: serverUrl + url,
  274. data: data,
  275. header: header,
  276. method: 'PUT',
  277. success: (res => {
  278. if (res.statusCode === 200) {
  279. if(res.data.code==401){
  280. // 重新登陆
  281. wx.login({
  282. success: res => {
  283. const code = res.code;
  284. if(code){
  285. //将code发送到开发者服务器
  286. wx.getUserInfo({
  287. success: res => {
  288. let encryptedData = res.encryptedData;
  289. let iv = res.iv;
  290. let url="https://badness.xiuqinews.cn/wx/login";
  291. requst_post_login(
  292. {
  293. encryptedData: encryptedData,
  294. iv: iv,
  295. code: code
  296. }
  297. ).then(res=>{
  298. if(res.data.data){
  299. wx.setStorage({
  300. key: 'access-token',
  301. data: res.data.data,
  302. })
  303. }else{
  304. }
  305. }).catch(err=>{
  306. console.log('ajax_err',err)
  307. })
  308. }
  309. })
  310. }
  311. }
  312. })
  313. // 重新登陆
  314. }else{
  315. resolve(res)
  316. }
  317. } else {
  318. reject(res)
  319. }
  320. }),
  321. fail: (res => {
  322. reject(res)
  323. })
  324. })
  325. })
  326. }
  327. //delete请求
  328. function deleteRequest(url, data) {
  329. let header = CreateHeader(url, 'DELETE');
  330. return new Promise((resolve, reject) => {
  331. wx.request({
  332. url: serverUrl + url ,
  333. // data: data,
  334. header: header,
  335. method: 'DELETE',
  336. success: (res => {
  337. if (res.statusCode === 200) {
  338. //200: 服务端业务处理正常结束
  339. resolve(res)
  340. } else {
  341. reject(res)
  342. }
  343. }),
  344. fail: (res => {
  345. reject(res)
  346. })
  347. })
  348. })
  349. }
  350. module.exports.getRequest = getRequest;
  351. module.exports.postRequest = postRequest;
  352. module.exports.postRequestFormData = postRequestFormData;
  353. module.exports.postParamsRequest = postParamsRequest;
  354. module.exports.putRequest = putRequest;
  355. module.exports.deleteRequest = deleteRequest;