uniapp 配置请求代理+请求封装

uniapp官网提供了三种方式:什么是跨域 | uni-app官网

1. 通过uniapp自带浏览器 打开项目是不存在跨域的

·

第二种方式: 

"h5" : {"template" : "static/index.html","devServer": {"proxy": {"/api": {"target": "http://192.168.31.162:8288","changeOrigin": true}}},"router" : {"mode" : "hash", // 路由模式"base" : "./"},"sdkConfigs" : {"maps" : {"amap" : {"key" : "ca8cde9d6d4d6658826713d31d3df9c2","securityJsCode" : "","serviceHost" : ""}}}}

uniapp 请求封装

import store from '@/store'
import config from '@/config'
import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import { toast, showConfirm, tansParams } from '@/utils/common'let timeout = 10000
const baseUrl = config.baseUrlconst request = config => {// 是否需要设置 tokenconst isToken = (config.headers || {}).isToken === falseconfig.header = config.header || {}if (getToken() && !isToken) {config.header['Authorization'] = 'Bearer ' + getToken()}// get请求映射params参数if (config.params) {let url = config.url + '?' + tansParams(config.params)url = url.slice(0, -1)config.url = url}return new Promise((resolve, reject) => {uni.request({method: config.method || 'get',timeout: config.timeout ||  timeout,url: config.baseUrl || baseUrl + config.url,data: config.data,header: config.header,dataType: 'json'}).then(response => {let [error, res] = responseif (error) {toast('后端接口连接异常')reject('后端接口连接异常')return}const code = res.data.code || 200const msg = errorCode[code] || res.data.msg || errorCode['default']if (code === 401) {showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {if (res.confirm) {store.dispatch('LogOut').then(res => {uni.reLaunch({ url: '/pages/login' })})}})reject('无效的会话,或者会话已过期,请重新登录。')} else if (code === 500) {toast(msg)reject('500')} else if (code !== 200) {toast(msg)reject(code)}resolve(res.data)}).catch(error => {let { message } = errorif (message === 'Network Error') {message = '后端接口连接异常'} else if (message.includes('timeout')) {message = '系统接口请求超时'} else if (message.includes('Request failed with status code')) {message = '系统接口' + message.substr(message.length - 3) + '异常'}toast(message)reject(error)})})
}export default request

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆的数组实现

前言 本次博客来讲解一下堆的数组实现,好吧还是会结合图例,让大家理解 堆的定义 什么是堆? 堆是一颗完全二叉树。它的性质是父节点一定大于或者一定小于子节点 每一个结点都要满足这个性质就是堆 堆的特性是堆顶的数据一定是最大或最小…

PyCharm2023 社区版安装 +中文语言包+配置教程+Python环境搭建

一、Python 安装 我们在安装Pycharm之前,首先要先安装Python环境也就是安装Python解释器 因为PyCharm是一个用于编写和调试Python代码的开发工具,而Python解释器是用于解释执行Python代码PyCharm需要依赖Python解释器来执行Python代码,因此…

Jmeter接口测试和Jmeter接口自动化测试

一、Jmeter 的使用步骤 打开Jmeter 安装包,进入\bin 中,找到"jmeter.bat", 点击打开即可。 在下图打开的Jmeter 页面中,右键“测试计划” -> “添加” -> "Threads(Users)" -> “线程组”, 建立线程…

[图解]SysML和EA建模住宅安全系统-04

1 00:00:01,200 --> 00:00:04,710 我们首先来看一下需求图的一些要点 2 00:00:05,810 --> 00:00:07,080 需求图用来干什么 3 00:00:07,210 --> 00:00:12,080 用来记录文本形式的一些需求 4 00:00:12,090 --> 00:00:13,480 和需求的素材 5 00:00:14,540 --> …

xilinx fpga bit流文件转成bin/mcs/hex文件的tcl语句操作

xilinx fpga bit流文件中包含工程的相关信息以及主体程序的二进制文件,bit文件只能在线加载,掉电丢失。因此需要转成bin/mcs文件,固化到flash中。 此处以转成bin文件为例 vivado2018软件中似乎没有单独将已经生成的bit转成bin文件的小工具&…

仓库管理流程详解(附作业流程图)

仓库管理流程在企业的日常运营中至关重要。它不仅是物资流转的核心环节,更关乎着企业的运营效率、成本控制和客户服务水平。一个高效、规范的仓库管理流程能够确保货物从入库到出库的各个环节有序进行,减少资源浪费和时间成本,同时帮助企业实…

【案例教程】土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测

查看原文>>>土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测 土地利用/土地覆盖数据是生态、环境和气象等领域众多模型的重要输入参数之一。基于遥感影像解译,可获取历史或当前任何一个区域的土地利用/土地覆盖数据,用于评估区域的生…

服务器被后台爆破怎么处理

服务器后台遭受密码爆破攻击是网络安全中常见的威胁之一,这种攻击通过不断尝试不同的用户名和密码组合来破解系统登录凭证,一旦成功,攻击者便能非法访问系统资源。 本文将介绍如何识别此类攻击,并采取有效措施进行防御&#xff0c…

1:硬件测试面试

1:板级测试 . JTAG和Boundary Scan 对于硬件板级测试,我使⽤JTAG和Boundary Scan技术进⾏⾃动化测试。这些技术可以帮助我访问PCB 上的芯⽚引脚,从⽽进⾏信号测量、连通性测试和故障诊断。 2:整机测试 3:测试准备 4…

AI 一键生成高清短视频,视频 UP 主们卷起来...

现在短视频越来越火,据统计,2023年全球短视频用户数量已达 10 亿,预计到2027年将突破 24 亿。对于产品展示和用户营销来说,短视频已经成为重要阵地,不管你喜不喜欢它,你都得面对它,学会使用它。…

记录计全支付切换到RabbitMQ时启动报错的问题

记录计全支付切换到RabbitMQ时启动报错的问题 首先在application.yml中切换到RabbitMQ配置安装RabbitMQ、Erlang、延时插件 rabbitmq_delayed_message_exchange,延迟插件必装 首先在application.yml中切换到RabbitMQ配置 # 第一处rabbitmq:addresses: 127.0.0.1:56…

2024/5/15 英语每日一段

Many pet owners are now turning to pet insurance policies to avoid higher vet bills should something bad happen unexpectedly. But Carlson said that preventive veterinary care—like vaccination, parasite control and weight management—is "the best way …