uniapp 使用 axios

2023-10-26

1.先用npm install axios
这就不用说了吧

2.添加配置代码

App.vue

<style lang="scss">
	@import 'uview-ui/theme.scss';
</style>

main.js

// 引入封装后的axios
import axios from './utils/http.js'
/**
 * 给Vue函数添加一个原型属性$axios 指向Axios
 * 这样做的好处是在vue实例或组件中不用再去重复引用Axios 直接用this.$axios就能执行axios 方法了
 * 在.vue中使用,this.$axios.get
 * @param {Object} config
 */
Vue.prototype.$axios = axios

下面是解决app和小程序适配的问题

axios.defaults.adapter = function(config) {
    return new Promise((resolve, reject) => {
        console.log(config)
        var settle = require('axios/lib/core/settle');
        var buildURL = require('axios/lib/helpers/buildURL');
        uni.request({
            method: config.method.toUpperCase(),
            url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
            header: config.headers,
            data: config.data,
            dataType: config.dataType,
            responseType: config.responseType,
            sslVerify: config.sslVerify,
            complete: function complete(response) {
                response = {
                    data: response.data,
                    status: response.statusCode,
                    errMsg: response.errMsg,
                    header: response.header,
                    config: config
                };

                settle(resolve, reject, response);
            }
        })
    })
}

uni.css

在第一行添加
@import "uview-ui/theme.scss";
@import "uview-ui/index.scss";

加入http工具包

http.js

import Vue from 'vue'
import axios from 'axios'

// create an axios instance
const service = axios.create({
	// baseURL: 'http://127.0.0.1:8686', // url = base url + request url
	//withCredentials: true, // send cookies when cross-domain requests 注意:withCredentials和后端配置的cross跨域不可同时使用
	timeout: 6000, // request timeout
	crossDomain: true
})

// request拦截器,在请求之前做一些处理
service.interceptors.request.use(
    config => {
        // if (store.state.token) {
        //     // 给请求头添加user-token
        //     config.headers["user-token"] = store.state.token;
        // }
        console.log('请求拦截成功')
        return config;
    },
    error => {
        console.log(error); // for debug
        return Promise.reject(error);
    }
); 

//配置成功后的拦截器
service.interceptors.response.use(res => {
    if (res.data.status== 200) {
        return res.data
    } else {
        return Promise.reject(res.data.msg);
    }
}, error => {
	if (error.response.status) {
		switch (error.response.status) {
			case 401:
				break;
			default:
				break;
		}
	}
    return Promise.reject(error)
})




export default service

3.配置api

建一个api的包,里面存放所有用到的接口

例子

import service from '../../utils/http.js'

export function toLogin(data) {
  return service({
    url: '/login',
    method: 'post',
    params : data
  }) 
}

调用

const toLogin = require('../../api/login/login.js')


//写一个方法,里面添加接口的调用

toLogin.toLogin(data).then(res => {
					if (res.data.code === 200) {
						uni.switchTab({
							url: "../index/index"
						})
					}
				})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uniapp 使用 axios 的相关文章

  • 无法使用 Jade 模板包含相对路径文件

    当我尝试将文件包含在同一文件夹中时 收到以下错误 the filename option is required to use include with relative paths 有两个文件 索引 jade 项目列表 jade cont
  • 按 Enter 键提交消息?

    我正在开发一个基于本教程使用 Meteor 构建的聊天应用程序 http code tutsplus com tutorials real time messaging for meteor with meteor streams net
  • 当key未知时如何获取js对象中的属性值

    我有一个对象数组 a 81 25 p 81 25 81 26 p 81 26 我想循环遍历数组并获取值p在每个元素中 for var key in a console log a key outputs 81 25 Object How d
  • 如何使用javascript将视频文件转换为字符串?

    我在 signalR 工作 我想通过将视频文件拆分为不同部分来将视频文件从一个客户端发送到另一个客户端 我已经通过分割图像源数据发送图像并在另一个客户端上接收该图像 document getElementById fileUpload ad
  • AngularJS 服务并承诺最佳实践

    我有一个 AngularJS 应用程序services 调用 http资源并返回promise我在控制器中解决了这个问题 这是我正在做的事情的示例 app service Blog function http q var deferred
  • 如何格式化折线图谷歌图表材料上的轴?

    我在格式化材料图表的轴时遇到问题 Using classic line chart if I would like to format my vertical axis with a dollar sign I would do vAxes
  • 当系列没有相同的时间值时,如何在工具提示中显示所有系列

    我有一个显示多个时间序列的图表 不同时间序列不会同时采样 有没有办法在工具提示中显示所有系列 在示例中 您可以看到所有系列都包含在前 2 个点的工具提示中 因为它们是同时采样的 其余点仅包含 1 个系列 var myChart echart
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • FileReader 在 Ionic 2 中未触发 onloadend

    我正在尝试使用 cordova file plugin 读取本地文件 目前我可以读取本地目录的内容并选择单个文件 但我在获取文件内容时遇到问题 这是我的函数 从列表中选择文件后单击按钮即可调用该函数 import window resolv
  • 如何将值从孩子的孩子传递给父母?

    我有一个父组件 有一个子组件 它也有一个子组件 Parent Child One child of parent Child Two child of child 当在子二中定义一个值时 我使用回调将该值传递给子一 但我也想将相同的值传递回
  • 如何在没有 jQuery 或延迟加载的情况下推迟背景图像

    根据帕特里克 塞克斯顿tutorial https varvy com pagespeed defer images html 我想以与这里相同的方式推迟背景图像img img src data image png base64 R0lGO
  • 如何创建显示/隐藏 Docusaurus 项目中所有详细标签状态的按钮?

    根据讨论here https stackoverflow com questions 58579048 how to add or remove the open attribute from all details tags in a r
  • 如何在 MongoDB v3.0.5 中创建用户

    我需要在 mongodb 中为我的数据库创建一个用户 但似乎我无法让它工作 我已经在我的 Windows 7 机器上安装了 mongoDb v3 0 5 根据本文 https docs mongodb org v3 0 tutorial a
  • 跟踪预防阻止了对 https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 存储的访问

    大约一年半前 我使用 OfficeJS API 编写了一个 Excel 加载项 它一直工作到大约两周前 Excel 似乎已经进行了更新 现在我可以右键单击任务窗格并查看开发工具 而以前我无法做到这一点 并且必须运行外部 MS Edge 开发
  • 鼠标输入时反应显示按钮

    我有一个反应组件 它包含如下方法 mouseEnter console log this is mouse enter render var album list const albums this props if albums user
  • 分配函数后如何删除 onmouseout 事件?

    我有一个问题 我正在为 onmouseout 事件分配一个函数 但运行该事件后 我需要将其删除 将非常感谢您的帮助 这取决于你的代码 如果你用 d3 这样做 那么你可以说 在 onmouseout 事件函数中 element on mous
  • 使用 NodeJS 创建 YouTube 播放列表

    我正在尝试使用 NodeJS 服务器创建 YouTube 播放列表 我已按照 Oauth 的 NodeJS 快速入门说明进行操作 如以下链接所示 https github com youtube api samples blob maste
  • 使用 jQuery 的 ajax 方法以 blob 形式检索图像

    我最近问了另一个 相关 问题 这导致了这个后续问题 提交数据而不是输入表单的文件 https stackoverflow com questions 17643142 submitting data instead of a file fo
  • 数组长度未定义[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图按如
  • 如何将函数导入到Vue组件中?

    我正在尝试将单个函数导入到我的 Vue 组件中 我为我的函数创建了一个单独的 js 文件 randomId js exports randomId gt My function 在我的 Vue 组件中 我导入了 Random js let

随机推荐

  • 【动态规划】背包问题(详细总结,很全)

    动态规划 一 背包问题 1 背包问题总结 1 动规四部曲 2 递推公式总结 3 遍历顺序总结 2 01背包 1 二维dp数组 代码实现 2 一维dp数组 代码实现 3 完全背包 代码实现 4 多重背包 代码实现 一 背包问题 1 背包问题总
  • Docker查看容器挂载目录

    只显示Docker容器挂载目录信息 docker inspect format Config Volumes 369a1376f78c 显示Docker容器和物理主机挂载目录信息 方法一 docker inspect f Mounts 36
  • AttributeError: module ‘faiss‘ has no attribute ‘StandardGpuResources‘

    pip install faiss gpu pip install faiss cpu 若安装了GPU版本的Faiss 仍然报以下错误 module faiss has no attribute StandardGpuResources m
  • 自动化测试只会用工具就行?真不是这样

    软件测试是对项目研发过程的产物 文档 代码等 进行审查 保障产品质量的过程 我们可以通过手工测试 自动化测试 工具扫描等方法完成这个任务 其中 自动化测试是当前重要的一种测试方法 具有响应速度快 稳定性高 人工干预少的特点 很好地契合了高响
  • 使用docker安装分布式hadoop(阿里hadoop镜像)

    前面使用了docker自带的镜像安装 那么这篇使用阿里镜像搭建hadoop集群 也参考了网上部分播客 但是多多少少有问题 我这篇播客是全部经过实践测试成功跑起来的 1 安装hadoop镜像 1 拉取镜像 拉取阿里的hadoop镜像 dock
  • OpenGL的视图变换

    OpenGL的视图变换 OpenGL 中场景进行变换 要经历一些过程 视图变换 模型变换 投影变换 然后到了窗口坐标 这几个变换开始的时候把我搞很混 这几天整理一下 一般书上把这几个变换用照相机类比 其实每个变换都是产生着一个 4x4 矩阵
  • Android DataBinding错误记录

  • readelf nm objdump 命令详解

    讲解上面三条命令之前要先了解一下ELF格式文件https blog csdn net u014608280 article details 81983055 一 readelf readelf命令可以查看ELF文件的详细信息 选项 a al
  • windows系统下设置mtu值的方法

    说起 MTU 值 可能许多朋友连听都没听说过 简单来说 我们上网时所进行的操作 都是通过传输一个又一个 数据包 来实现的 而 MTU 值就是用来设定可传输数据包的最大尺寸的 很显然 MTU 值设置得过大或过小 都会在一定程度上影响我们上网的
  • AWS EC2常见问题

    一般性问题 问 什么是 Amazon Elastic Compute Cloud Amazon EC2 Amazon Elastic Compute Cloud Amazon EC2 是一种 Web 服务 可在云中提供大小可调的计算容量 该
  • centos docker 安装mysql方法

    直接docker run mysql 会出错 如下提示 You need to specify one of MYSQL ROOT PASSWORD MYSQL ALLOW EMPTY PASSWORD and MYSQL RANDOM R
  • 电脑老是自动安装流氓软件的解决办法(详解)

    前言 我们老是被一些垃圾软件搞心态 那么这个时候怎么办呢 1 打开链接https free lanzoux com b0cpu1guf 2 点击下载合适版本 在这里我只演示以下这种的 3 解压之后可以看到以下界面 点击运行程序exe 扫描完
  • 集中式架构与分布式概念,大白话解释

    3分钟读懂系统架构演变 了解时下最火的微服务概念 本人将从大到小给你讲授系统架构的演变 此处的大小不是对比项目的大小 而是单个模块的大小 集中式架构 垂直拆分 分布式 服务治理 微服务 咱们先从最大的来 集中式架构 用我的话来讲它最大最笨重
  • 【iOS开发】生成Appicon图标、为iOS应用添加图标

    1 可以使用在线移动图标生成工具 图标工场http icon wuruihong com 网站自动生成iOS所需的所有对应格式的图标 2 如果直接选择iOS 会自动生成29pt 40pt 50pt 60pt 72pt 76pt 83 5pt
  • MinIO的安装与使用

    MinIO的安装与简单使用 简介 MinIO是一款基于Go语言发开的高性能 分布式的 开源的对象存储系统 兼容亚马逊的S3协议 对Kubernetes能够友好的支持 专为AI等云原生工作负载而设计 官网 中文官网 MinIO官网 官网中也有
  • log4j.properties 配置

    Logger级别 WARN 表明会出现潜在错误的情形 ERROR 指出虽然发生错误事件 但仍然不影响系统的继续运行 FATAL 指出每个严重的错误事件将会导致应用程序的退出 ALL 是最低等级的 用于打开所有日志记录 OFF 是最高等级的
  • 一文说清DC-DC BUCK电路(非常详细)

    目录 摘要 BUCK原理 DC DC芯片框图 自举电容 输出电感 输出电容和纹波 损耗 总结 摘要 DC DC BUCK 是硬件工程师工作中使用频率非常高的电路 可以这么说 只要板子不是迷你型的 十有八九都有DC DC 因此 对它的了解与学
  • 利用Python3做词频统计和词云图

    起源 因看到一篇满眼是字的文章 故希望能够快速的检索出关键字 所以尝试用Python3来实现 代码 import jieba import numpy import codecs import pandas import matplotli
  • Error-Java-IJ:Imported project refers to unknown jdks JavaSE-1.7

    ylbtech Error Java IJ Imported project refers to unknown jdks JavaSE 1 7 Import from EclipseImported project refers to u
  • uniapp 使用 axios

    1 先用npm install axios 这就不用说了吧 2 添加配置代码 App vue main js 引入封装后的axios import axios from utils http js 给Vue函数添加一个原型属性 axios