时间:2021-05-26
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
在Vue中使用,最好安装两个模块axios 和vue-axios
$npm install axios vue-axios --save然后引用并使用模块
import Axios from 'axios'import VueAxios from 'vue-axios'Vue.use(VueAxios,Axios)在组件中通过如下方式进行使用
this.$http[method]()1、可以从浏览器中创建XHR对象
2、可以从nodeJS中创建HTTP请求
3、支持Promise API
4、可以拦截请求和响应
5、可以转换请求数据和响应数据
6、可以取消请求
7、可以自动转换JSON数据
8、客户端支持防御XSRF
下面是一些简单的请求实例
仅仅向后端请求数据
axios.get('index.php') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });通过URL向后端发送数据,要使用params属性,params属性包含即将与请求一起发送的数据
运行下列代码后,请求URL变更为index.php?id=12345&text=%E5%B0%8F%E7%81%AB%E6%9F%B4
axios.get('index.php',{ params:{ id:12345, text:'jb51' }}).then((response)=>{ console.log(response)}).catch((error)=>{ console.log(error)})当然,也可以把数据直接写到URL中
// 为给定 ID 的 user 创建请求axios.get('/user?ID=12345') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });一般来说,post请求更多的是要提交数据,params属性里的数据会出现在请求主体中
[注意]如果是axios.create()方法中的params属性,则其里面的数据会出现在URL参数中
但实际上,post方法不需要使用params属性,它的第二个参数就是要发送的数据
axios.post('index.php',{ id:12345, text:'jb51'}).then((response)=>{ console.log(response)}).catch((error)=>{ console.log(error)})多并发请求
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) { // acct为第一个请求的结果,perms为第二个请求的结果 }));可以通过向 axios 传递相关配置来创建请求
axios(config)// 发送 POST 请求axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }});axios(url[,config])// 发送 GET 请求(默认的方法)axios('/user/12345');为方便起见,为所有支持的请求方法提供了别名
axios.request(config)axios.get(url[, config])axios.delete(url[, config])axios.head(url[, config])axios.post(url[, data[, config]])axios.put(url[, data[, config]])axios.patch(url[, data[, config]])[注意]在使用别名方法时, url、method、data 这些属性都不必在配置中指定
处理并发请求的助手函数
axios.all(iterable)axios.spread(callback)可以使用自定义配置新建一个 axios 实例
axios.create([config])var instance = axios.create({ baseURL: 'https://mit('fnChangeList',{listData:response.data})}).catch(function(thrown) { if (axios.isCancel(thrown)) { console.log('Request canceled', thrown.message); } else { console.log('err'); }});source.cancel('Operation canceled by the user.');最终在控制台中打印出如下信息
Request canceled Operation canceled by the user.
更多关于VUE中使用HTTP库Axios的文章大家可以点击下面的相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
axios基于Promise的HTTP请求客户端,可同时在浏览器和node.js中使用现在Vue官方推荐的网络通信库不再是vue-resource了,推荐使用a
我们常用的有get方法以及post方法,下面简单的介绍一下这两种请求方法vue中使用axios方法我们先安装axios这个方法npminstall--savea
前言最近用Vue写项目的时候,用到axios,因为axios不能用Vue.use()(详细介绍可以参考这篇文章),所以在每个.vue文件中使用axios时就需要
一、axios的封装在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中
vue中使用Axios第三方库,采用形式提交,参数格式为multipart/格式数据,请求参数变为对象格式的解决办法。(推荐第二种方法)提交数据的四种编码方式一