什么是axios?官方解释:axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

  具有以下特点:

  • 从浏览器中创建 XMLHttpRequests
  • 从 node.js 创建 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换 JSON 数据
  • 客户端支持防御 XSRF

  但是对于目前的我而言,它就是一种用来发送网络请求的方法。

  使用axios发送请求很简单,代码也极其条理化。

  安装方法:

  (1)、使用npm:

  $ npm install axios

  (2)、使用bower:

  $ bower install axios

  (3)、使用CDN加速服务

  例如:<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>

  使用axios发送请求:

  1、执行get请求: 

// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345')
.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);
});

  

  2、执行post请求:

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

  

  3、执行多个并发请求:

function getUserAccount() {
return axios.get('/user/12345');
} function getUserPermissions() {
return axios.get('/user/12345/permissions');
} axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// 两个请求现在都执行完成
}));

  

  当然也可以通过向axios传递相关配置来创建请求,例如,我们在vue项目中使用axios来发送请求,这种方式就及其必要了。举例说明:我们在写项目的时候,有时候用的是一个接口地址,但是后期因为某种原因需要变更接口地址,这种情况下,假如我们之前创建请求时都是使用的绝对路径,也就是绝对的url,而我们知道一个项目中通常会包含许多的请求,遇到这种情况就必须一个一个的去改了。

  但是,如果我们在axios配置中配置一个baseURL,后面在发送请求的时候,只需要写上接口的相对url就行了。这种情况下,如果遇到需要更改接口地址的话,只需要更改配置项中的baseURL即可,而不用一个一个的去更改,是不是就方便多了。

  这里以基于iview的后台管理为例(可参考 基于iview的后台管理),在项目的index.html文件中,引入axios文件,可通过CDN方式引入,然后就可以在src/main.js文件中添加baseURL,如:

axios.defaults.baseURL = 'https://some-domain.com/api/';

  

  这样在其他要发送请求的地方只需要这样写即可:

global.axios.post('adminN_1.service', {
// 接口的上传参数
})
.then(data => {
console.log('返回数据', data)
})
.catch(e => {
console.log(e)
})

  

  说明:

  (1)、如果没有指定 method,请求将默认使用 get 方法。

  (2)、`baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL,这样也便于以后更改接口地址

关于axios及其在vue中的配置的更多相关文章

  1. 学习笔记——在vue中如何配置Jest(一)

    最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单的说了一下在使用jest时遇到的一些问题,但是我觉得并没有真正的解决的很好.后面会在学习过程中更新前面的那篇文章,加 ...

  2. 关于vue中如何配置echarts以及使用方法

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) ...

  3. vue 中动画配置

    <transition name="fade">   <router-view ></router-view> </transition& ...

  4. axios在vue中的简单配置与使用

    一.axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:https://hzzly.github.io/2017/03/12/ ...

  5. vue中局部封装axios

    Vue中局部配置axios 'use strict' import axios from 'axios'; import { Loading } from 'element-ui'; export c ...

  6. 如何在vue中使用ts

    注意:此文并不是把vue改为全部替换为ts,而是可以在原来的项目中植入ts文件,目前只是实践阶段,向ts转化过程中的过渡. ts有什么用? 类型检查.直接编译到原生js.引入新的语法糖 为什么用ts? ...

  7. vue中keep_alive使用

    总结:keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM.结合vue-router中使用,可以缓存某个view的整个内容. 1.在App.vue中添加配 ...

  8. vue中使用keepAlice的各种问题

    项目需求:从项目列表页index,进入到列表的详情页detail,再从detail返回到index,需要缓存index的数据 在App.vue中的配置 <template> <div ...

  9. vue 中axios 的基本配置和基本概念

    axios的基本概念及安装配置方法   ajax:异步请求,是一种无需再重新加载整个网页的情况下,能够更新部分网页的技术 axios:用于浏览器和node.js的基于promise的HTTP客户端 a ...

随机推荐

  1. oracle unix时间戳与date转换

    linux 时间戳 转date:   创建自定义函数: create or replace function unix_to_oracle(in_number number) return date ...

  2. 686. Repeated String Match

    方法一.算是暴力解法吧,拼一段找一下 static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); cl ...

  3. Linux 文件授权

    Linux用户权限     在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,在Linux系统中,通过UID来区分用 ...

  4. my.ini优化mysql数据库性能的十个参数(推荐)

    (1).max_connections:允许的同时客户的数量.增加该值增加 mysqld 要求的文件描述符的数量.这个数字应该增加,否则,你将经常看到 too many connections 错误. ...

  5. HTML5 通过 FileReader 实现文件上传

    概述 在页面中上传时,之前一般都是需要使用form表单进行上传.html5 中提供了FileReader 可以将文件转换成Base64编码字符串,因此就可以直接使用 AJAX实现文件上传. 实现代码 ...

  6. java socket之上传文件

    一.功能介绍 该功能主要实现,将客户端的:F:/work/socketSample/filetemp/client/test_client.txt上传到服务端F:/work/socketSample/ ...

  7. java学习2打架代码编写

    在同一个包中的Player类 package work; public class Player { private String name; private int hp; private int ...

  8. C++ char, unsigned char, signed char

    C语言中的 char, unsigned char, signed char 一.他们是什么? signed char是有符号的,但是unsigned char没有符号,两者在存储上没有任何区别都是8 ...

  9. org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0

    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/Ma ...

  10. (转)ASP.NET MVC3 Razor视图引擎-基础语法

    转自:http://kb.cnblogs.com/page/96883/ I:ASP.NET MVC3在Visual Studio 2010中的变化 在VS2010中新建一个MVC3项目可以看出与以往 ...