为了统一管理请求,每个项目都会去配置axios;而不是在vue中直接使用,那样不好维护等等

下面是我配置的最基础的axios文件

第一步:首先新建一个axios文件,我是放在router文件下的

import axios from "axios";
import { Toast } from "mint-ui"; // 我用的mint的框架来弹出我的错误返回 大家可以用别的提示(移动端的组件库)
import router from "@/router/index.js"; // 默认超时设置
axios.defaults.timeout = 5000; // 相对路径设置
axios.defaults.baseURL = ""; //http request 拦截器
axios.interceptors.request.use(
(config) => {
// 获取token
const token = localStorage.getItem("cc_token");
// 设置参数格式
if (!config.headers["Content-Type"]) {
config.headers = {
"Content-Type": "application/json",
// application/x-www-form-urlencoded
};
}
// 添加token到headers
if (token) {
config.headers.token = token;
}
// 鉴权参数设置
if (config.method === "get") {
//get请求下 参数在params中,其他请求在data中
config.params = config.params || {};
let json = JSON.parse(JSON.stringify(config.params));
//一些参数处理
} else {
config.data = config.data || {};
//一些参数处理
}
return config;
},
(err) => {
return Promise.reject(err);
}
); //http response 拦截器
axios.interceptors.response.use(
(response) => {
//一些统一code的返回处理
if (response.data.code === 501) {
// 登录验证
//做了个示例跳转项目中登录,并记录下相对路径
router.push({
name: "login", //从哪个页面跳转
query: {
retUrl: window.location.href.split("#")[1] || "",
is_new_user_url: 1,
},
});
}
return response;
},
(error) => {
return Promise.reject(error);
}
); export default axios

第二步:发送请求,再项目中请求接口基本上是按照业务或者功能划分的

我在src下新建api的文件夹, 然后新建一个login.js 文件,用来放关于登录的接口的

import request from "@/router/axios";  //引入封装的axios,也就是步骤一中的axios文件


//发送get请求
export const getLoginApi = (params) => {
return request({
url: "www.baidu.com",
method: "get",
params: { ...params }, //或者 写成 params,也是可以的
   // params, 这是简写
});
};

//发送post请求  这个请求是404因为百度没有post这个接口
export const getLoginApi = (params) => {
return request({
url: "www.baidu.com",
method: "post",
data:params
});
};
 

第三步:在页面使用

  import { getLoginApi } from "@/api/login";   //在对应的vue页面中,引入刚刚的请求接口

  //就可以使用了
    let params = {
      cardId: 342511635445,
      code: 666666,
    };
    getLoginApi(params).then((res) => {
      console.log(res, "----------");
    });

vue中配置axios.js文件,发送请求的更多相关文章

  1. Vue中引入静态JS文件(爬坑)

    前言(背景介绍) 开发的项目需要与Threejs的3D项目结合在一起,需要静态引入,jquery.js,stats.js,three.js,ThreeBSP.js等静态文件.开发环境是iview-ad ...

  2. vue中使用axios下载文件,兼容IE11

    一.设置axios返回值为blob 二.使用a标签的down属性下载,如果是IE浏览器,可以使用navigator.msSaveBlob进行下载 // data的数据类型是blob downloadF ...

  3. vue中采用axios发送请求及拦截器

    这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在 ...

  4. Vue在单独引入js文件中使用ElementUI的组件

    Vue在单独引入js文件中使用ElementUI的组件 问题场景: 我想在vue中的js文件中使用elementUI中的组件,因为我在main.js中引入了element包和它的css,并挂载到了全局 ...

  5. vue中使用axios与axios的请求响应拦截

    VUE中使用Axios axios的安装 npm install axios vue-axios axios在vue的配置与使用 在main.js中引入axios和vue-axios import a ...

  6. vue中config/index.js:配置的详细理解

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...

  7. vue页面引入外部js文件遇到的问题

    问题一:vue文件中引入外部js文件的方法 //在vue文件中 <script> import * as funApi from '../../../publicJavaScript/pu ...

  8. 过滤器会拦截 前端页面加载 js文件的请求

    学艺不精啊.....之前就总结过博客: JAVA中解决Filter过滤掉css,js,图片文件等问题 结果现在又犯了老错误~ 情况如下: index.jsp 页面的验证码输入栏绑定了异步验证(jQur ...

  9. Vue中ESlint配置文件.eslintrc文件

    很久没有分享和更新过了 今天就给大家分享一篇 Vue中ESlint配置文件.eslintrc文件详解吧 ------------------------------------------------ ...

随机推荐

  1. bluetoothctl命令提示No default controller available

    在学习bluetoothctl命令时,执行bluetoothctl,然后执行show,提示No default controller available. 1. 执行hciconfig,发现有hci0 ...

  2. SimpleXMLElement::addChild添加同级的空值xml节点

    SimpleXMLElement::addChild添加同级的空值xml节点后,变成了其后面节点的父节点 解决方案:将节点以属性值的方式赋空值,$info->CONV_LEGAL_UNIT_NU ...

  3. Ubuntu下载连接(阿里云镜像)

    ubuntu 14.04: http://mirrors.aliyun.com/ubuntu-releases/14.04/ ubuntu 16.04: http://mirrors.aliyun.c ...

  4. wsgi的environ变量

    The environ dictionary is required to contain these CGI environment variables, as defined by the Com ...

  5. WordCount (Python)

    Github项目地址:https://github.com/w1036933220/WordCount 一.解题思路 把项目需求理清楚,画一个思维导图 考虑各部分功能所需要的大概实现思路 然后完成了计 ...

  6. HM16.0之帧内模式——xCheckRDCostIntra()函数

    参考:https://blog.csdn.net/nb_vol_1/article/category/6179825/1? 1.源代码: Void TEncCu::xCheckRDCostIntra( ...

  7. shell 三剑客之 grep

    grep 的全称是 Globally search a Regular Expression and Print,是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹 ...

  8. Spring Security使用数据库数据完成认证--练气后期2

    写在前面 没错,这篇文章还是练气后期!但作者我相信筑基指日可待! 在前一篇文章当中,我们简单地分析了一下Spring Security的认证流程,知道了如果想要实现对自己用户数据(账户.角色.权限)的 ...

  9. 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器

    @ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...

  10. Jeecg-Cloud学习之路(一)

    首先,Spring-Cloud目前是行业的潮流,貌似不会就落后了,笔者为了不脱离大部队只能深入学习一下了. 其次.跳槽到一家公司,给公司推荐了Jeecg-Boot的开发平台,那么为了后面扩展为clou ...