vue三种调用接口的方法

article/2025/11/4 23:16:09

注:此博客仅用于学习,自己还处于菜鸟阶段,希望给相同处境的人提供一个可参考的博客。如果您觉得不合理,您的指导,非常欢迎,但请不要否定别人的努力,谢谢您了!

vue三种调用接口的方法

  • 1. this.$api.LeadershipScreen.getImportantRiskList(params)
  • 2.引用,然后直接调用
  • 3.axios(需要先安装axios)
  • 4.配置request

1. this.$api.LeadershipScreen.getImportantRiskList(params)

在api文件下层级关系如下图:
在这里插入图片描述
在index.js下

// 导入所有接口
import api from './api'
const install = Vue => {if (install.installed)return;install.installed = true;Object.defineProperties(Vue.prototype, {// 注意,此处挂载在 Vue 原型的 $api 对象上$api: {get() {return api}}})
}
export default install

在api.js

/*接口统一模块*/
import * as LeadershipScreen from './componet/LeadershipScreen'
export default {LeadershipScreen
}
/*使用模板
*  this.$api.auditApi.auditDataAll().then(response=>{}).catch(error=>{})*/

在componet/LeadershipScreen.js

import { request } from "../../utils/request6";
export const getImportantRiskList = (data) => {
//allUrl2 可以写一个公共的地方将allUrl2 引进来return request({method: 'get',url: allUrl2 + '/important/getImportantRiskList',data});
};

在页面中使用

 this.$api.LeadershipScreen.getImportantRiskList(params).then((res) => {console.log("res.data111111111111", res.data);this.getList = res.data;}).catch((error) => {});
//methodName:null;
let params={}
this.methodName = this.$api.LeadershipScreen.getImportantRiskList;
this.methodName(params).then((res) => {console.log("res", res);}).catch((error) => {});

2.引用,然后直接调用

定义在api.js文件中

import request from '@/utils/request'
export const selectTaskInfo = (id, params) => request({ url: '/project-mgt/project/v1.0/selectTaskInfo?taskId=' + id, method: 'get', params })export function setFormulaConfig(params) { return request({ url: '/project-mgt/project/v1.0/formulaConfig', method: 'get', params }) }//此处的params,会自动将参数拼在后面,data则不会export const projectSelectionAdd = (data) => request({ url: '/project-mgt/project/v1.0/add', method: 'post', data })

使用

import {selectTaskInfo, setFormulaConfig, projectSelectionAdd ,
} from "@/code/projectSelection/api/projectSelectionApi";
//一种:直接传递id,
selectTaskInfo(id).then((res) => {console.log("resaaaaaaaa", res.data);}).catch((err) => {console.log(err);});//一种:直接传递一个对象
let params = {id: this.Form.id,
};
setFormulaConfig(params).then((res) => {if (res.code == "200") {console.log("resaaaaaaaa", res.data);this.$message.success("成功");}}).catch((err) => {});//一种:三元表达式根据不同的情况进行调用不同的接口
let interfaceName =this.$route.query.state == "add"? projectSelectionAdd: projectUpdate;
interfaceName(params).then((res) => {if (res.code == "200") {this.$message.success(this.$route.query.state == "add" ? "新增" : "修改");} else {this.$message.error(res.msg);}}).catch((err) => {});

3.axios(需要先安装axios)

import axios from "axios";

get

// 为给定 ID 的 user 创建请求
const config = {headers:{"userId":1212}
};
axios.get('/user?ID=12345',config).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});// 可选地,上面的请求可以这样做
axios.get('/user', {params: {ID: 12345}}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});

post

axios.post('/user', {firstName: 'Fred',lastName: 'Flintstone'}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});

https://www.kancloud.cn/yunye/axios/234845
下面的比较好,推荐使用

getQuestionSurvey() {let testUrl = "";if (process.env.NODE_ENV === "development") {testUrl = "http://192.168.121.2:8080";//模拟,并非真实地址} else {testUrl = process.env.VUE_APP_BASE_API;}testUrl = testUrl + "/getFillReportById/" + this.id;axios({method: "get",url: testUrl,headers: {"Content-Type": "application/x-www-form-urlencoded",userId: this.userId,},}).then((res) => {//if (this.state != "editAjustMent") {// this.tableData1.forEach((item, index) => {//   for (const key in item.detailVoMap) {//     if (key.length > 17) {//      item.detailVoMap[key].fixedFlag = 0;//     }//}//});//}}).catch((err) => {console.log("err.response.data",err.response,err.response.data,err.response.data.data,err.response.data.msg);this.$message.error(err.response.data.data? err.response.data.data: err.response.data.msg);});},

4.配置request

import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
import qs from 'qs'
import cookieStore from '@/utils/common';
// Vue.prototype.$cookieStore = cookieStore;
// create an axios instance
const service = axios.create({baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url// withCredentials: true, // send cookies when cross-domain requeststimeout: 500000000 // request timeout
})
// request interceptor
service.interceptors.request.use(config => {// do something before request is sentif (config.requestType === 'form') {config.headers = { 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8' }console.log('form')config.data = qs.stringify(config.data, { indices: false })} else if (config.requestType === 'json' || !config.requestType) {console.log('json')config.headers = { 'content-type': 'application/json;charset=UTF-8' }}if (store.getters.token) {config.headers['Authorization'] = getToken()}//加请求头config.headers['userId'] = "1036465471609819137"; //1return config},error => {// do something with request errorconsole.log(error) // for debugreturn Promise.reject(error)}
)// response interceptor
service.interceptors.response.use(response => {const res = response.dataif (res.code == 200) {return Promise.resolve(res)} else if (res.code == 0) {return Promise.resolve(res)} else if (res.code == 401) {Message.error(res.msg)store.dispatch('user/resetToken').then(() => {location.reload()})} else if (res.code == 20000) {return Promise.resolve(res)} else {Message({message: res.msg,type: 'error'})return Promise.reject(res)}},error => {console.log('err' + error) // for debugconsole.log(error.response)Message({message: error.response.data.data ? error.response.data.data : error.response.data.msg,type: 'error',duration: 5 * 1000})return Promise.reject(error.response)//此操作,可以直接拿到报错的信息error.response}
)export default service

http://chatgpt.dhexx.cn/article/OwWDffAh.shtml

相关文章

Layui调用接口使用心得

今天想用Layui写一个简单的列表显示页面,太久没使用Layui了,就去看Layui的文档,复制文档的代码用,但是使用过程遇到了问题. .问题1:thymelea内联样式问题 org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "cla…

postman批量调用接口操作步骤

应用:多次的调用一个接口 新建一个Collection,并创建一个文件夹和请求 填写请求的url和参数形式,注意这里的 {{erpponum}} 表示这是一个变量,会通过我们提供的”参数文件“进行,postman会在批量执行时为我们自动挨个匹…

postman工具批量调用接口

1、先在Collections中建一个文件夹,然后新建一个接口保存 2、然后选择Run 3、准备一个txt文件,增加要循环的参数json数组 4、选择接口,上传文件,配置参数(Iterations为线程数,Delay为推迟多久),然后点下面的Run 5、…

kettle实战之调用接口

从今天开始将本人在工作当中,处理的一些Kettle过程记录下来,供大家参考学习。 在日常数据处理过程中,会涉及调用对方接口获取数据,来向自己的数据库中插入大量业务数据,这里说明一下数据处理过程中,经常会…

Element 调用接口

博主之前已经为大家讲了Element入门教程,如果还有什么疑问的话可以查看博主置顶的文章。相信大家对Element 框架已经有了一个基本的了解,这次为大家讲一下如何调用接口。 以我自己为例子,我想要调用我接口里的图片,并让他在浏览器…

java接口调用_java 接口怎么调用

一个类实现了某一个接口就可以调用接口中的方法。接口可以理解为一种能力,例如:每种动物都有叫的能力,但是每种动物的叫声都不一样,叫的能力就可以定义为一个接口。 一、创建项目和包 打开Eclipse,依次选择File→New→…

Postman批量调用接口

postman批量调用并不是并发调用 新建个分组 添加对应的调用接口名及参数---千万记住要保存下 添加完之后,点击这里执行 调用次数要和数据条数一致,文件里有10条数据这里就是10,导入完之后这里会自动更新,加入你要是更改为15&…

系统调用接口

1、系统调用 操作系统作为系统软件,它的任务是为用户的应用程序提供良好的运行环境。因此,由操作系统内核提供一系列内核函数,通过一组称为系统调用的接口提供给用户使用。系统调用的作用是把应用程序的请求传递给系统内核,然后调…

java调用接口实现的方法_java调用接口的实现方法

java调用接口的实现方法 发布时间:2020-06-29 11:08:46 来源:亿速云 阅读:78 作者:Leah 本篇文章给大家分享的是有关java调用接口的实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读…

前端调用接口

调用接口 jquery的ajax使用方法案例调用的接口get请求post请求在接口中调用接口 fetch案例调用的接口案例 axios使用方法 vue-resource jquery的ajax 该方法是 jQuery 底层 AJAX 实现。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下无需直接操作该函数&#xff0c…

vue调用接口

目录 简单获取和追加数据铺页面 用 post 给接口传值 post 用 url 问号拼接数据 简单获取和追加数据铺页面 一、在api中新建该页面的js文件用于存放该页面的所有接口 二、引用所需组件,调用接口(已经全局配置了接口地址) import axios fr…

接口调用方法详解

接口调用方法详解 基础知识 接口定义: 接口是一组已命名的方法签名。所以接口里可以定义方法、属性、事件,因为这些本质上都是方法。但是,接口不能定义任何的构造函数。 接口的可访问性: 类本身的修饰符可以为public,internal等(VS2008里试过)。但是显示实现接口方…

如何优雅的调用接口?

目录 一、背景 二、分析 三、编码 InterfaceDescriptor ServiceProviderInterface ServiceProviderInterfaceClient ServiceProviderInterfaceClientImpl 四、测试 SendSmsRequest SendSmsResult SendSmsProvider TestController 五、总结 一、背景 一般我们的项…

软件测试 (7) web项目测试

前言 之前说了APP项目的测试,今天来总结一下web项目的测试,其实大多数过程是差不多类似的。对比平常移动端手机的高频率使用来说,对于部分人使用pc端浏览器的概率就不会这么高,讲APP项目测试的时候没怎么涉及到网络协议部分的介绍…

项目流程_软件测试

软件测试属性 1.按测试阶段划分 单元测试:单元测试是对软件基本组成单元进行的测试,是为了尽早发现错误(错误发现越早,成本越低,发现问题比较容易,修正问题更容易),单个的软件单元或者一组相关的软件单元所进行的测试&…

[SpringBoot系列]项目测试

文章目录 加载测试专用属性加载测试专用配置Web环境模拟测试数据层测试回滚测试用例数据设定 加载测试专用属性 测试是保障程序正确性的唯一屏障,在企业级开发中更是不可缺少。 测试过程本身并不是一个复杂的过程,但是很多情况下测试时需要模拟一些线上情…

如何找软件测试的项目

10年测试经验分享:新手怎么找软件测试的项目?_程序员二黑的博客-CSDN博客_软件测试项目去哪里找测试新手不知道上哪找测试项目,这应该是每个测试自学人的困扰。https://erhei.blog.csdn.net/article/details/119416292?spm1001.2014.3001.55…

IT项目管理之软件测试

1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。 2. QC & QA &a…

软件项目测试的具体内容

功能测试: 对指定业务所有功能进行测试,撰写测试用例,执行测试用例,出具测试报告和BUG列表,专用BUG管理工具进行测试管理。 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们…

Linux下轻量级数据库-SQLite3(嵌入式设备)

一、概念 数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table)。 二、常见的数据库 大型数据库(大型机) —————- Oracle(亿级) 中型数据库(分布式超大型) ———— mysql(百万级) 轻…