阅读 409

uniapp H5本地开发产生跨域处理

开发配置权重

可以修改manifest.json配置信息, uni-app 中 manifest.json->h5->devServer 实际上对应 webpack 的 devServer,鉴于 manifest 为 json 文件,故 webpack.config.js->devServer 配置项下的简单类型属性均可在manifest.json->h5->devServer节点下配置,funciton 等复杂类型暂不支持。

页面路由模式是history依赖后端配置返回

{   "h5": {   "router": {     "mode":"history" // hash 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。|| history    },   "devServer": {       "https": false, // 是否使用https协议     "host": "0.0.0.0",       "hotOnly": true,     "port": 8000,       "disableHostCheck": true,     "proxy": {         "/api": {           "target": "https://xxx.xxx.cn",    // API服务器的地址         "changeOrigin": true,            "secure": true,   // 设置支持https协议的代理         "ws": true,       // 代理websockets         "pathRewrite": {  // 重写路径 比如'/api/user/info'重写为'/user/info', target+pathRewrite           "^/api": ""           }       }       }     }     }, } 复制代码

开发环境中manifest.json proxy的pathRewrite将"/api"替换成空,下面是请求接口

let baseUrl = "" // 根据环境变量设置接口地址 switch(process.env.NODE_ENV){     case "development":         baseUrl = '/api';         break;     case "production":         baseUrl = 'xxx.xxx.com';         break;     default:         baseUrl = "其他环境" } uni.requset({     url: baseUrl+"/api/user/info"     method:"post", }) 复制代码

uniapp的工具函数promisic

uniapp的接口采用回调函数的方式作为返回值,所以下面有一个工具函数,将uniapp的api的success和fail返回promise

使用方式promisic(wx.request)({url:""}).then(res).catch(err); 或者 let res = await promisic(wx.request)({url:""});

 /** 将小程序的回调函数转化promise形式   * @description:    * @param {Function} func   * @return {Promise}   */ function promisic (func) {     return function (params = {}) {         return new Promise((resolve, reject) => {             const args = Object.assign(params, {                 success: (res) => {                     resolve(res);                 },                 fail: (error) => {                     reject(error);                 }             });             func(args);         });     }; }


作者:LTAND
链接:https://juejin.cn/post/7023386328154767367


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐