uniapp解决跨域问题处理(uniapp配置跨域无效)

环境要求:vue3。本文不适用于vue2或在manifest.json中配置。解决方案:(1)需要项目的根路径下面新建文件,名称为:vite.config.js;(2)将以下代码复制进去:imp

环境要求:vue3。 本文不适用于vue2 或在manifest.json中配置。

解决方案

(1)需要项目的根路径下面新建文件,名称为:vite.config.js;

(2) 将以下代码复制进去:

import {defineConfig} from \'vite\';import uni from \'@dcloudio/vite-plugin-uni\';export default defineConfig({server: {proxy: {\'/devApi\': {target: \'http://192.168.0.1:7272/api\',changeOrigin: true,rewrite: (path) => path.replace(/^\\/devApi/, \'\'),},},},plugins: [uni()],});

(3)配置说明

  1. /devApi 为项目的基础请求地址,仅用于本地环境,可自定义;
  2. target 为真正需要访问的接口地址;
  3. rewrite: 为需要将访问的部分地址的路径换掉。如上配置为将/devApi 换为空字符串。

(4)样例解释(以上配置代码对应环境解释)

本地测试访问配置的地址为(前面无须加http等): /devApi/login运行代码到chrome浏览器,控制台network显示的是访问:http://localhost:XXX/devApi/login;经过本配置后,实际代理访问的请求地址:http://192.168.0.1:7272/api/login

注意:本代码仅适用vite和vue3配置。不适用vue2等;

如果上述代码无效,请关闭正在运行项目,再重新运行。

(5)常见问题如下

问题:uni-app设置跨域代理。pathRewrite重写路径在vue2有效、vue3无效。

解决:经检查问题出现在manifest.json中h5字段配置跨域代理,其仅对vue2有效。可代理地址,但pathRewrite无效。


问题:vue2如何配置跨域代理?

解决:方案有两种,参考如下

方案1:manifest.json中配置为:

// manifest.json{    \"h5\": {        \"devServer\": {            \"proxy\": {                \"/devApi\": {                    \"target\": \"http://192.168.0.1:7272/api\",                    \"pathRewrite\": {                        \"^/devApi\": \"\"                    }                }            }        }    }}

方案2:项目根路径下新建vue.config.js

// vue.config.jsmodule.exports = {  devServer: {    proxy: {      \'/devApi\': {        target: \'http://192.168.0.1:7272/api\',        pathRewrite: {          \'^/devApi\': \'\'        }      }    },  }}
本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 97552693@qq.com 举报,一经查实,本站将立刻删除。

给TA打赏
共{{data.count}}人
人已打赏
数码

个人开发桌面程序选择(桌面应用开发用什么语言)

2023-9-25 12:56:58

数码

一键锁屏的设置过程(电脑30秒自动锁屏怎么设置密码)

2023-9-25 12:57:36

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索