UniApp的Vue3版本中H5配置代理的最佳方法

UniApp的Vue3版本中H5项目在本地开发时需要配置跨域请求调试

最开始在 manifest.json中配置

在这里插入图片描述
总是报404,无法通过代理请求远程的接口并返回404错误。

经过验证在项目根目录创建 vite.config.js文件

在这里插入图片描述

vite.config.js内容:

// vite.config.js
import {
  defineConfig
} from 'vite'
import uni from '@dcloudio/vite-plugin-uni' //官方内置的,不用下载,下面代码粘贴直接用即可
 
export default defineConfig({
  plugins: [
    uni()
  ],
  server: {
    //port: 8300,//端口号
    proxy: {
      '/api': {
        target: 'http://xxxx.xxxx.com', // 目标服务  
        changeOrigin: true,
        rewrite: path => path.replace(/^\/api/, ''),
      }
    }
  }
})

再次访问应正常了,

切记:以上配置完成后记得重启一下hbuilderx和浏览器,重新编译,才不会再报404错误!

把配置过程做下记载,避免下次再次踩坑。

uniapp VUE3跨域代理后请求报404

踩坑看过来

uniapp VUE2的不用看这个

跨域问题是前端开发中常见的一个问题,在 UniApp 中也同样会遇到这种情况。当我们在请求数据时,如果服务器端未对跨域访问进行支持配置,则可能会导致浏览器拦截请求并报错。 ### 解决UniApp跨域的方式 #### 一、修改服务端配置 最直接也是推荐的一种解决方式就是让后端开发者调整他们的服务端程序来允许跨源资源共享(CORS),这通常涉及到设置响应头`Access-Control-Allow-Origin`等属性值为合适的客户端地址或者通配符"*"代表所有来源都可以访问资源。 例如对于Node.js Express框架来说可以这样做: ```javascript app.all('/*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("Content-Type", "application/json;charset=utf-8"); next(); }); ``` #### 二、代理方式处理(开发环境) 如果你是在本地调试阶段遇到了这个问题,并不想立刻去改动线上生产环境的服务端设定的话,那么可以选择通过HBuilderX内置的http-proxy功能来做代理转发。步骤如下: 1. 打开项目目录下的 manifest.json 文件; 2. 进入“运行”选项卡页面下找到Http Proxy Settings区域; 3. 设置需要跳转的目标域名及路径规则匹配;如将所有的/api/**都指向真实api所在的网址https://example.com/api/** 4. 启动应用即可生效,此时你的uni.request()里的url只需要填写相对应的/path部分就可以了。 注意:这种方法仅适用于开发测试期间使用,请勿在正式发布版本里采用这种方式! #### 三、JSONP技术 (仅限于get请求) 虽然jsonp只能完成get类型的ajax交互任务,但它是一种较早时期流行的绕过同源策略限制的办法之一。不过由于它存在安全性隐患并且局限较大,目前一般不再作为首选方案考虑了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phpgolife

您的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值