本篇的重点在于解决h5/小程序/app这三端在本地和生产环境的网络请求问题
全部代码贴在了全文最后

思路:

首先要理解这三个端的特性,h5会有跨域问题需要反向代理,小程序和app不需要反向代理,同时小程序还得用https域名。

一、h5,

一般会跨域需要反向代理。所以要在mainifest.json设置反向代理。在请求接口时,还得拼个/api前缀

// 配置代理"devServer" : {"proxy" : {"/api" : {"target" : "http://192.168.1.193:8999","changeOrigin" : true, //是否跨域"secure" : false, // 设置支持https协议的代理"pathRewrite" : {"^/api" : ""}}}}
let url ='/api/system/login'

本地调试是loacalhost:808几,

正式环境的话,会变成ip或域名前缀+/api/system/login,后端需要配置一下nginx代理,将api替换一下

二、小程序

不需要反向代理,直接请求。所以请求接口不需要拼api前缀。
但需要https域名,所以本地环境测试时开启‘不校验合法域名……’
1.在微信开发者工具,点击详情>本地设置

2.开启‘不校验合法域名……’

在微信公众平台https://mp.weixin.qq.com/ ,扫码登录小程序,点击开发>开发管理,找到服务器域名,

// #ifdef MP
if (process.env.NODE_ENV === 'development') {BASE_URL = "http://192.168.1.193:8999"
} else {BASE_URL = "https://www.baidu.com"
}
// #endif

小程序本地环境,request网络请求地址是后台服务地址,接口不要/api前缀

let url = BASE_URL + '/system/login'

小程序生产环境,request网络请求地址要https://域名,并且要api前缀,因为域名一般对应的是前端页面,域名+api后缀,api经过了后端nginx替换,就表示是后端服务地址

let url = BASE_URL + '/api/system/login'

拓展:如果要修改 request 合法域名
注意:
① 域名只支持 https 协议
② 域名不能使用 IP 地址或 localhost
③ 域名必须经过 ICP 备案
④ 服务器域名一个月内最多可申请 5 次修改

三、app

不需要反向代理,直接请求。所以请求接口不需要拼api前缀

// #ifdef APP-PLUS
BASE_URL = "http://192.168.1.193:8999"
// #endif
let url = BASE_URL + '/system/login'

request.js全部代码:

import $common from './common.js';//vuex
// import $store from '../store/index.js';//vuex
// 全局请求路径,也就是后端的请求基准路径
let BASE_URL = ""
// #ifdef H5
BASE_URL = process.env.BASE_API
// #endif
// #ifdef APP-PLUS
BASE_URL = "http://192.168.1.193:8999"
// #endif
// #ifdef MP
if (process.env.NODE_ENV === 'development') {BASE_URL = "http://192.168.1.193:8999"
} else {BASE_URL = "https://www.baidu.com"
}
// #endif
const request = (options = {}) => {options.url = !BASE_URL ? options.url : (BASE_URL + options.url)options.header = options.headersoptions.data = options.dataoptions['sslVerify'] = falselet TOKEN = $common.getStorage("token") //TOKENif (TOKEN) {if (options.headers) {options.headers['Authorization'] = TOKEN;} else {options.headers = {"Content-type": "application/json;charset=utf-8",},options.headers['Authorization'] = TOKEN;options.header = options.headers}}return new Promise((resolve, reject) => {console.log("options", options);options.success = function (res) {console.log("res", res);let code = res.data.code;uni.hideLoading();if (code != 200) {if (['401', 'B0005', 'A0076'].indexOf(code) != -1) {//清空tokenuni.removeStorageSync("token");uni.removeStorageSync("sysUser");uni.showToast({title: '登陆失效',duration: 2000,icon: 'none',});}}//系统异常if (code == "B0001") {uni.showToast({title: '请求失败,请稍后重试',duration: 2000,icon: 'none',});return;}resolve(res)}options.fail = function (err) {console.log("err", err);uni.hideLoading();reject(err)}uni.request(options)})
}
export default request

uni-app的h5/小程序/app 网络请求,解决本地环境和生产环境网络请求问题相关推荐

  1. 基于Uni-APP多端「h5+小程序+App」高仿抖音小视频|直播|聊天实例

    uni-ttLive 基于uni-app+uView-ui跨端开发短视频+直播聊天实例. 全新研发的一款多端仿制抖音短视频+直播+聊天项目,基于uniApp+Vue.js+Vuex+Nvue+uVie ...

  2. WANLSHOP 直播短视频种草多用户电商系统源码自营+多商户+多终端(H5+小程序+APP)

    WANLSHOP高级版 可用于自营+外包项目(多主体). 可用于外包定制开发项目. 提供开源源码,私有化部署.一款基于 FastAdmin + Uni-APP 开发的 多终端(H5移动端.APP.微信 ...

  3. 9.mallplus -uniapp 制作 h5 小程序 app商城

    1.已完成首页数据展示 2.商品详情和规格选择 3.支持spu,sku加入购物车 下单,小程序微信支付和小程序微信登录,余额支付 4.地址管理,收藏管理 足迹管理 订单管理 >   发布页面 h ...

  4. PHP知识付费系统源码(H5+小程序+APP源代码)

    知识付费系统源码是在组织内组织.创建.使用和共享集体知识的过程.成功的知识管理包括将信息保存在易于访问的地方.在最高级别,知识管理流程是企业管理知识的方式,从知识的创建到组织方法,再到如何继续确保知识 ...

  5. SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目

    JavaDog Chat v1.0.0 基于SpringBoot+uniapp简单通讯聊天软件

  6. 微信小程序从本地开发环境到线上测试环境和生产环境的配置

    这篇文章是对慕课网mpvue实战项目视频过程中环境的配置的总结与更新(因为小程序文档时不时就更新) 项目源码:https://github.com/suhuashan/bookCommentSyste ...

  7. json 微信小程序 筛选_GitHub - zhengyangkang/sl-filter: uni -app 一款使用简单的筛选组件,适配app、微信小程序、H5。...

    sl-filter 筛选 筛选组件,组件名:sl-filter dcloud插件市场地址 sl-filter 简介 一款使用简单的筛选组件,适配app.微信小程序.H5. 感谢分享 效果图 并列菜单 ...

  8. uni app 开发微信小程序及上线体验

    uni app 开发微信小程序及上线体验 项目创建及微信小程序AppId的申请 本次开发的是电商类的微信小程序,这里用到的是HBuilderX这个编辑器.之前用的Visual Studio Code ...

  9. 省钱兄同城跑腿小程序源码uniapp前端模版源码(小程序+APP+H5)

    开源省钱兄同城跑腿源码,目前只开源用户端V2版本部分核心模块源码提供学习研究 使用uniapp技术,提供学习使用不可商业 适配支持公众号+APP+H5+小程序,使用Hbuilder导入即可运行 #功能 ...

  10. 省钱兄游戏陪玩小程序APP源码uniapp前端源码适配支持(APP+小程序+H5)

    开源代码是用户端uniapp静态部分源码,提供学习使用 使用hbuilder导入即可运行,目前适配小程序,安卓,IOS,H5 游戏类型,我的信息,我的要求,立即找大神 编辑,我想玩的游戏,我想找,其他 ...

最新文章

  1. 史上最浅显易懂的Git教程!
  2. #pragma pack 内存对齐
  3. 织梦动态PHP可以删除吗,DeDe织梦cms如何全站动态化,取消静态功能
  4. 英特尔加注RISC-V:砸10亿投资,还加入其国际基金会
  5. Django操作与内容
  6. ssm oracle mysql_ssm连接oracle数据库
  7. Android Studio 生成apk 出现 :error_prone_annotations.jar (com.google.errorprone:error) 错误
  8. 全国夜间灯光指数数据、GDP密度分布、人口密度分布、土地利用数据、降雨量数据
  9. 二级计算机混合引用,Excel单元格的相对引用、绝对引用和混合引用
  10. python 生成testbench_(Testbench用法总结)1. Testbench中文本数据的存储读取操作对比
  11. Android当前任务管理器不显示应用进程
  12. IEEE文献高级检索
  13. vba formula 公式的引用
  14. 西瓜错时上市销售,提高经济效益的背后是技术支持!
  15. html文本框打tab,HTML标签textarea支持tab键
  16. log4j配置详解(非常详细转载)
  17. 校招/社招/秋招/春招求职指南
  18. js、++、--、switch、for、if
  19. heroes 2 android,真爱英雄2弹性球(Gachi Heroes 2 Flexboll)游戏-Gachi Heroes 2 Flexboll手机版预约-乐游网安卓...
  20. pusher php,Linux 下php使用 Pusher 遇到一个难题

热门文章

  1. 串的定义及其基本操作的实现
  2. Elasticsearch 最佳运维实践总结
  3. 计算机怎么不读u盘,老司机告诉你电脑不读U盘的解决方法
  4. driver nvidia web_NVIDIA WebDriver
  5. Android使用Socket.IO实现即时通讯
  6. TCP-Drinc:Smart Congestion Control Based on Deep Reinforcement Learning笔记
  7. go IO操作-文件读
  8. 爱心树html演示,爱心树表白网页源码,jquery女神表白动画树特效
  9. 单片机中段程序_单片机程序延时方法详细介绍
  10. ac服务器自动掉线,AC68U经常掉线重连 什么原因?