import request from "@/node_modules/zhouWei-request/js_sdk/request"; import base from '@/common/baseUrl'; let version_code = ''; // // #ifdef APP-PLUS // import { // getCurrentNo // } from '@/uni_modules/zhouWei-APPUpdate/js_sdk/appUpdate'; // import { // isString // } from "util"; // import { log } from "console"; // setTimeout(() => { // getCurrentNo(function(res) { // console.log("版本号", res); // version_code = res.versionCode; // }); // }, 200); // // #endif //可以new多个request来支持多个域名请求 let $http = new request({ //接口请求地址 baseUrl: base.baseUrl, //服务器本地上传文件地址 fileUrl: base.baseUrl, // 服务器上传图片默认url defaultUploadUrl: "api/common/v1/upload_image", // 服务器上传文件名称 defaultFileName: "file", //设置请求头(如果使用报错跨域问题,可能是content-type请求类型和后台那边设置的不一致) header: { 'content-type': 'application/json;', // 'project_token': base.projectToken, //项目token(可删除) } }); //请求开始拦截器 $http.requestStart = function(options) { if (options.load) { } // 图片、视频上传大小限制 if (options.method == "FILE") { // 文件最大字节: options.maxSize 可以在调用方法的时候加入参数 let maxSize = options.maxSize || ''; for (let item of options.files) { if (item.fileType == 'image') { if (maxSize && item.size > maxSize) { setTimeout(() => { uni.showToast({ title: "图片过大,请重新上传", icon: "none" }); }, 500); return false; } } else if (item.fileType == "video") { if (item.duration < 3) { setTimeout(() => { uni.showToast({ title: "视频长度不足3秒,请重新上传", icon: "none" }); }, 500); return false; } } } } // #ifdef APP-PLUS // 添加当前版本号 if (version_code) { options.header['version_code'] = version_code; } // #endif //请求前加入token options.header.sign = getApp().globalData.headerSign // options.header["content-type"] = "application/json" return options; } //请求结束 $http.requestEnd = function(options) { } let loginPopupNum = 0; let num = 0 $http.dataFactory = function(res) { console.log("接口请求数据", { url: res.url, resolve: res.response, header: res.header, data: res.data, method: res.method, }); if (res.response.statusCode && res.response.statusCode == 200) { let httpData = res.response.data ; if (typeof(httpData) == "string") { httpData = JSON.parse(httpData); } //判断数据是否请求成功 if (httpData.success == "yes" || httpData.statusCode == "200") { // 返回正确的结果(then接受数据) // 返回Promise对象,支持链式调用和await操作 return Promise.resolve( res.response); } else if (isString(httpData.resultCode)) { } else { //其他错误提示 if (res.isPrompt) { uni.showToast({ title: httpData.info || httpData.msg, icon: "none", duration: 3000 }); } // 返回错误的结果(catch接受数据) return Promise.reject({ statusCode: 0, errMsg: "【request】" + (httpData.info || httpData.msg), data: res.data }); } } else { // 返回错误的结果(catch接受数据) return Promise.reject({ statusCode: res.response.statusCode, errMsg: "【request】数据工厂验证不通过", data: res.data }); } }; var content = 0 // 错误回调 $http.requestError = function(e) { // e.statusCode === 0 是参数效验错误抛出的 if (e.statusCode === 0) { throw e; } else { if (content != 0) { uni.showToast({ title: "网络错误,请检查一下网络", icon: "none" }); } else { content = 1 } } } export default $http;