UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)

news2024/11/29 9:41:58
  • UniApp 运行到浏览器的时候,接口会跨域报错,这里通过两种方式解决,第一:修改Uniapp自带的manifest.json 源码视图并进行配置h5设置。第二:在项目根目录新建vue.config.js并配置代理。 二选一即可。

  • 修改或调整配置文件后,推荐重新运行,以防不生效。

  • 配置完成后,请求接口显示 Please enable JavaScript to continue. 的话,可以试试重启编辑器(尤其是 HBuilderX),再重新运行项目,如果还是不行就另外查查解决方案吧,网上有很多。

一、方式一:修改 manifest.json 文件

在 UniApp 也有类似配置的地方:找到 manifest.json -》源码视图,添加 h5 配置项:

"h5" : {
    "devServer" : {
        "disableHostCheck" : true,
        "proxy" : {
            "/api" : {
                "target" : "http://www.dzm.com",
                "changeOrigin" : true,
                "secure" : false,
                "ws": false,
                "pathRewrite" : {
                    "^/api" : ""
                }
            }
        }
    }
}

在这里插入图片描述

二、方式二:添加 vue.config.js 文件

  • UniApp 会识别 vue.config.js 文件,但是 manifest.json 的优先级
    要高于 vue.config.js 文件,所以看需求选择一个配置即可。

  • 像 vue 开发一样,手动创建一个 vue.config.js 文件,然后添加上代理,vue.config.js 只能创建在项目的根目录,不然会无法识别到。

module.exports = {
    devServer: {
        disableHostCheck: true,
        proxy: {
            '/api': {
                target: 'http://www.dzm.com',
                changeOrigin: true,
                secure: false,
                ws: false,
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    }
}

三、使用

简单使用

// 请求对象
uni.request({
    url: '/api' + '/mobile/user/userinfo',
    method: 'GET',
    data: {},
    header: {
        'X-Token': uni.getStorageSync('token')
    },
    success: (res) => {
        // 请求成功
        console.log(res)
    },
    fail: (err) => {
        // 请求失败
        console.log(err)
    }
})

封装成请求对象 request.js

// 接口域名
// #ifdef H5
const BaseHost = '/api'
// #endif
// #ifndef H5
const BaseHost = 'http://www.dzm.com'
// #endif
// 请求封装
export default function ({
    // 请求域名
    host = BaseHost,
    // 请求地址
    url,
    // 请求方式
    method,
    // 请求数据
    data = {},
    // 请求头
    header = {}
}) {
    // 官方请求文档(可查阅传参)https://uniapp.dcloud.io/api/request/request.html
    // 转为 Promise 结构
    return new Promise((resolve, reject) => {
        // 请求对象
        uni.request({
            url: host + url,
            method,
            data,
            header: Object.assign({
                // 默认请求头
                'X-Token': uni.getStorageSync('token')
            }, header),
            success: (res) => {
                // 可以在这里进行成功的公共处理
                resolve(res)
            },
            fail: (err) => {
                // 可以在这里进行失败的公共处理
                reject(err)
            }
        })
    })
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1291005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT 中基于 TCP 的网络通信 (备查)

基础 基于 TCP 的套接字通信需要用到两个类: 1)QTcpServer:服务器类,用于监听客户端连接以及和客户端建立连接。 2)QTcpSocket:通信的套接字类,客户端、服务器端都需要使用。 这两个套接字通信类…

记一次mq消息没有收到的问题排查

快速定位和修复问题是程序员的一项基本功,而只有把问题定位准确,才能有针对性的修复。在程序的世界里,神马都是数据。当数据没有按照预期从源头到达目的地,那一定是中间的某个环节出了问题。搞清楚整个链路的模型(包括…

Error: Could not create the Java Virtual Machine(Linux启动tomcat成功后找不到进程8080端口)

文章目录 问题解决问题过程Tomcat版本要求 问题解决 版本冲突,我的jdk是1.8.x, tomcat 是 10.1.x的,要求jdk是11。 问题过程 运行 ./startup.sh 显示如下: 还以为运行成功呢, 使用命令一查,根本查不到进…

Java - InetAddress#isReachable 方法解析

文章目录 前言代码资源 前言 在 Java 中,InetAddress 类提供一个方法来检查一个网络地址是否可达,其作用类似与在命令行执行 ping 命令, 这个方法就是 isReachable 方法。 代码 var baidu InetAddress.getByName("www.baidu.com&quo…

Python之html2text,清晰解读HTML内容!

更多Python学习内容:ipengtao.com 大家好,我是彭涛,今天为大家分享 Python之html2text,清晰解读HTML内容,全文3900字,阅读大约10分钟。 HTML是Web开发中常见的标记语言,但有时我们需要将HTML内容…

LabVIEW发开发电状态监测系统

LabVIEW发开发电状态监测系统 对发电设备的持续监测对于确保可靠的电力供应至消费者极为重要。它不仅能够及时提醒操作员注意发电设备的潜在损坏,还能减少由于设备故障造成的停机时间。为了达到这一目标,开发了一款基于LabVIEW的软件,专门用…

【基于openGauss5.0.0简单使用DBMind】

基于openGauss5.0.0简单使用DBMind 一、环境说明二、初始化tpch测试数据三、使用DBMind索引推荐功能四、使用DBMind实现SQL优化功能 一、环境说明 虚拟机:virtualbox操作系统:openEuler 20.03 TLS数据库:openGauss-5.0.0DBMind:d…

信道的极限容量

目录 信道的最高码元传输速率 限制码元在信道上的传输速率的因素: (1)信道能够通过的频率范围 (2) 信噪比 任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。 码元传输的速率越…

copilot的使用

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 🌤️安装和配置编辑器&a…

使用GPT-4V解决Pycharm设置问题

pycharm如何实现关联,用中文回答 在PyCharm中关联PDF文件类型,您可以按照以下步骤操作: 1. 打开PyCharm设置:点击菜单栏中的“File”(文件),然后选择“Settings”(设置)。…

逆向修改Unity的安卓包资源并重新打包

在上一篇文章中,我已经讲过如何逆向获取unity打包出来的源代码和资源了,那么这一节我将介绍如何将解密出来的源代码进行修改并重新压缩到apk中。 其实在很多时候,我们不仅仅想要看Unity的源码,我们还要对他们的客户端源码进行修改和调整,比如替换资源,替换服务器连接地址…

机器的深度强化学习算法可以被诱导

设计一个好的奖励函数是机器深度强化学习算法的关键之一。奖励函数用于给予智能体(机器)在环境中采取不同行动时的反馈信号,以指导其学习过程。一个好的奖励函数应该能够引导智能体朝着期望的行为方向学习,并尽量避免潜在的问题&a…

案例059:基于微信小程序的在线投稿系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

阿里云云通信短信申请教程免费试用3个月

目录 第一步 开通试用短信 第二步、设置调试参数 第三步、根据文档对接 第一步 开通试用短信 阿里云免费试用 - 阿里云 第二步、设置调试参数 打开试用文档 第三步、根据文档对接 SendSms_短信服务_API文档-阿里云OpenAPI开发者门户

C#核心笔记——(三)在C#中创建类型

3.1 类 类是最常见的一种引用类型,最简单的类的声明如下: class MyClass{}而复杂的类可能包含如下内容: 1.在class关键字之前:类的特性(Attribute)和修饰符。非嵌套的类修饰符有: public、int…

微型5G网关如何满足智能巡检机器人应用

在规模庞大、设施复杂的炼化厂、钢铁厂、工业园区等大型、巨型区域,时刻需要对各类设施设备巡查监测,保障生产运行安全可控。传统的人工巡检存在着心态松懈、工作低效、工作强度高、工作环境恶劣等问题,仍然存在安全隐患。 而随着物联网、5G、…

多人聊天Java

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

STM32F1定时器TIM

目录 1. TIM&#xff08;Timer&#xff09;定时器 2. 定时器类型 2.1 基本定时器框图 2.2 通用定时器框图 2.3 高级定时器框图 3. 定时器代码 3.1 恢复缺省配置 3.2 时基单元初始化 3.3 结构体变量附一个默认值 3.4 使能计数器 3.5 使能中断输出信号 3.…

138. 随机链表的复制

给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

Hive数据库系列--Hive数据类型/Hive字段类型/Hive类型转换

文章目录 一、Hive数据类型1.1、数值类型1.2、字符类型1.3、日期时间类型1.4、其他类型1.5、集合数据类型1.5.1、Struct举例1.5.2、Array举例1.5.3、Map举例 二、数据类型转换2.1、隐式转换2.2、显示转换 本章主要讲解hive的数据类、字段类型。官网文档地址见https://cwiki.apa…