当前位置: 首页 > news >正文

uniapp开发:uniapp之vue2、vue3运行至h5请求跨域配置

目录

  • 前言
  • vue2配置跨域
  • vue3配置跨域
  • Tips
  • 关注我,不迷路

前言

由于浏览器的同源策略,所以h5请求接口,可能存在跨域的情况。

uniapp的vue2版本运行至h5,跨域配置直接在manifest.json的源码视图中配置代理,下面会详细描述。

uniapp的vue3版本运行至h5,跨域配置目前是不支持在manifest.json中配置,vue3使用了vite,需要增加vite.config.js中进行配置代理,下面会详细描述。

vue2配置跨域

在manifest.json的源码视图中配置代理:

"h5": {
	"devServer": {
		"disableHostCheck": true, //禁止访问本地host文件
		"port": 8000, //修改项目端口
		"proxy": {
			/**配置服务器路径**/
			"/api": {
				"target": "https://api.xxx.com",// 目标服务器
				"changeOrigin": true,
				/**重写路径**/
				"pathRewrite": {
					"^/api": ""
				}
			}
		}
	}
}

vue3配置跨域

在项目根目录新建vite.config.js文件,文件中的配置如下:

import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

export default defineConfig({
	plugins: [
		uni()
	],
	server: {
		port: 3000,
		proxy: {
			'/api': {
				target: 'https://api.xxx.com', // 目标服务  
				changeOrigin: true,
				rewrite: path => path.replace(/^\/api/, ''),
			}
		}
	}
})

Tips

  1. 配置了代理后,请求接口的前面需要拼接/api,可以在封装的接口里面统一处理,可以参考的另一篇博客uni.request的二次封装。
  2. 跨域代理是开发环境生效,所以生产环境需要做相应处理去掉/api,详情可以参考第1点中提到的另一篇博客。
  3. vue3在这里有个坑:之前在用vue2的时候项目根目录新建了一个api文件夹专门管理接口,但是uniapp的vue3项目中,根目录的api文件夹内容在代码中通过import引入的时候,会报错,导致整个项目运行不了,之前遇到这个问题研究了很久才发现。所以vue3项目中建议把api文件夹移到common文件夹中。

关注我,不迷路

如果任何疑问的可以在评论区留言或者私聊。

也可以扫下面二维码加我wx,备注‘地区-名字-技术类型’,我会拉进我的微信技术分享群。注意:必须备注清楚哈。

也可以加QQ群交流:568984539,加群备注‘地区-名字-技术类型’。

image

更多前端、uniapp、nodejs等相关知识可关注我个人博客:https://blog.csdn.net/qq_42961150?spm=1011.2124.3001.5343

相关文章:

  • PHP从零开始-笔记-面向对象编程的概念
  • 运行环境之小程序环境判断与h5等多平台环境区分汇总
  • Git 简易手册
  • css样式:单行与多行文本溢出显示省略号
  • 启动图制作:Android Studio制作.9.png图亲测详细流程之每步图解
  • Android相机使用(系统相机、自定义相机、大图片处理)
  • vue3.2开发:vuex在vue3与vue2中异同之快速体验
  • uniapp开发:uniapp快速体验vue3.2之setup语法糖,怎么使用怎么爽
  • 解决显示“此图片来自微信公众平台未经允许不可引用”错误图片
  • zabbix安装
  • base64编码:js实现base64编码的3种方式,多场景下分析使用
  • 微信小程序:关注公众号组件自定义样式
  • IOS UITableView多选删除功能
  • 绑定host:windows与模拟器之绑定host集结
  • 启动模拟器:启动Android Studio内置的模拟器之命令大法
  • [deviceone开发]-do_Webview的基本示例
  • 【面试系列】之二:关于js原型
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • LeetCode18.四数之和 JavaScript
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Python实现BT种子转化为磁力链接【实战】
  • sessionStorage和localStorage
  • web标准化(下)
  • windows-nginx-https-本地配置
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何在GitHub上创建个人博客
  • 使用 Docker 部署 Spring Boot项目
  • 微信小程序设置上一页数据
  • 小程序 setData 学问多
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 阿里云ACE认证学习知识点梳理
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​Linux·i2c驱动架构​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $(selector).each()和$.each()的区别
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)菜鸟学数据库(三)——存储过程
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .net 按比例显示图片的缩略图
  • .Net7 环境安装配置
  • .NET分布式缓存Memcached从入门到实战
  • .NET连接数据库方式
  • .NET是什么
  • /etc/motd and /etc/issue
  • @Autowired 与@Resource的区别
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @RestControllerAdvice异常统一处理类失效原因
  • [17]JAVAEE-HTTP协议