uniapp使用H5调试时跨域问题解决
作者:冰凉冰凉 发布时间:2024-05-09 10:37:11
用uniapp开发APP时,为了开发方便,经常是H5开发好,然后再弄APP的兼容性问题。所以可能会涉及到跨域,此时也可以让后端同学帮忙,但是求人不如自己搞,所以分享一套跨域方法,其实也是webpack开发vue跨域的方法。废话不啰嗦,上代码。两个地方都可以配置效果一样取其一即可,第一个是vue.config.js,manifest.json源码
module.exports = {
// 配置路径别名
configureWebpack: {
devServer: {
disableHostCheck: true,
proxy: {
//配置跨域
'/api': {
target: "http://www.xxx.com/",//转发的目标地址
secure : false,
changOrigin: true,
// pathRewrite: { //是否重写 如果重写的话,本地/api/a1/b1 就回变成/a1/b1
// '^/api': '' //意思就是把api这个替换成空 ''
// }
}
}
}
}
}
manifest.json源码视图直接上截 图方便理解,再次解释一下pathRewrite,很多人会因为这个导致无法使用
另外一旦在本地配置了,这个跨域代理,老是切换开发环境要变地址,官方也支持开发环境。
const baseURL = process.env.NODE_ENV === 'development' ? "/api/" : "https://www.正式地址.com/api/";
环境具体介绍
看到这里其实有的读者还是不太明白具体咋搞,或者按照这个代码写了还是不能成功使用,再用一些例子帮助你明白具体做了什么操作。
假设本地端口为localhost:9000,服务器测试地址为http://www.xxx.com,直接请求报跨域错误。
有两个请求的接口为http://www.xxx.com/api/test/t1,http://www.xxx.com/api/test/t2。
一般会封装地址,例如function getT1()地址为"text/t1",function getT2()地址为"text/t2"。
这时候api/就可以提取出来作为baseUrl,前面的代理,就可以配置/api 匹配api这个字段,把这个字段作为条件,
一旦匹配这个字段,就把这个字段的请求地址换成target定义的地址。
现在接口改了有两个请求的接口为http://www.xxx.com/api1/test1/t1,http://www.xxx.com/api2/test2/t2,
都不一样了也没有公共字段了,那我要怎么配置代理呢。这时候就用到pathRewrite,在接口的时候的时候认为的加一个识别标签,然后用重写给他去除后得到实际地址。代码如下
const baseURL = process.env.NODE_ENV === 'development' ? "/devApi/" : "https://www.正式地址.com/api/";//人为的在baseUrl中加入devApi
vue.config.js
module.exports = {
? ? // 配置路径别名
? ? configureWebpack: {
? ? ? ? devServer: {
? ? ? ? ? ? disableHostCheck: true,
? ? ? ? ? ? proxy: {
? ? ? ? ? ? ? ? //配置跨域
? ? ? ? ? ? ? ? '/devApi': {
? ? ? ? ? ? ? ? ? ? target: "http://www.xxx.com/",//转发的目标地址
? ? ? ? ? ? ? ? ? ? secure : false,
? ? ? ? ? ? ? ? ? ? changOrigin: true,
? ? ? ? ? ? ? ? ? ? pathRewrite: {?
? ? ? ? ? ? ? ? ? ? ? ? '^/devApi': '' //意思就是把devApi这个替换成空 ''
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
本地请求的localhost:9000/devApi/api1/test1/t1 经过代理变成 http://www.xxx.com/api1/test1/t1
最后的最后,提醒一下,每次修改完配置,一定要记得关闭重新编译一下。
附上webpack对proxy的配置说明
来源:https://juejin.cn/post/7000943533456621576


猜你喜欢
- 本文实例汇总了常用的JavaScript弹出窗口方法,供大家对比参考,希望能对大家有所帮助。详细方法如下:1.无提示刷新网页:大家有没有发现
- 现在,我们已经把一个Web App的框架完全搭建好了,从后端的API到前端的MVVM,流程已经跑通了。在继续工作前,注意到每次修改Pytho
- select nid,ntitle,nreadtimes,Row_number() over(order by nreadtimes des
- SQL Server常见的问题主要是SQL问题造成,常见的主要是CPU过高和阻塞。一、CPU过高的问题1、查询系统动态视图查询执行时间长的s
- max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似有些地方可以从卷积去参考【TensorFlow】 tf.nn.con
- 1、引言小 * 丝:鱼哥,这个周末过得咋样小鱼:酸爽~ ~小 * 丝:额~~ 我能想到的,是这样吗?小鱼:有多远你走多远。小 * 丝:唉,鱼哥,你别说,
- 本文介绍了纯python进行矩阵的相乘运算的方法示例,分享给大家,具体如下:def matrixMultiply(A, B):
- 一、桌面应用软件桌面应用软件是基于GUI(Graphical User Interface,图形用户界面)交互式程序,需要实现GUI库实现前
- 一、Go语言下载go语言官方下载地址:https://golang.org/dl/找到适合你系统的版本下载,本人下载的是windows版本。
- 本文讲述了python安装mysql-python的方法。分享给大家供大家参考,具体如下:ubuntu 系统下进行的操作首先安装了pip工具
- 我想此时不妨使用字符串参数来帮助我们解决这种情况,利用字符串分割的方法将一个参数分割成数个参数来解决。下面我们看一个例子: 假设现在给你一个
- 这是一种相对比较复杂的图表,但是仍然遵循上篇中提出的最基本的思路。本例中使用的定义列表标签dl可能平常我们见得不多,一般我们在做列表的时候通
- 一、CAN报文简介CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称
- 前言之前公司设计的网站比较混乱,很多地方不统一,其中一个就是弹出层,导致这个原因是因为,公司的UI换了好几个人,而他们每个人做出来的都不太一
- 在已经发表的系列文章中我们已经讨论了两个ASP对象:Application对象和Session对象,因此能够访问Application对象和
- 1.Null数据的处理 1)检索出null值  
- Dreamweaver(以下简称DW)提供了一种称为“Behavior”(行为)的机制,帮助你构建页面
- 继续分享pygame有趣的技术知识,欢迎往下看。一、先搭个架子(一)黏贴背景图:实现代码如下:import pygamepygame.ini
- 前言我们在处理数据库的问题的时候,有时在数据库端看不到异常的等待,但是应用却报连接异常。这种情况,有可能是在压力还没有传递到数据库,在网络这
- 目录一、前言二、使用1.vue2和vue3的不同2.页面某些数据不需要缓存3.动态设置keepAlive属性4.使用include,excl