axios 学习笔记

# axios 学习笔记

标签(空格分隔): 数据请求 axios

---

## 1. 下载与安装
+ npm i axios -S
+  import axios from 'axios'
## 2. 使用 
+ get请求
```
//参数拼接的写法
 axios.get('/index?ID=12345').then(res => {
    console.log(res)
 }).catch(err => {
    console.log(err)
 })
 //参数以对象的方式传入
  axios.get('/index'{
  params: {
  ID: 12345
  }
  }).then(res => {
    console.log(res)
 }).catch(err => {
    console.log(err)
 })
```
+ post请求
```
axios.post('/user', { //注意这里和get中传入对象不同,这里直接传入对象,而get中需要传入一个属性为params的对象,要传的参数对象作为params的属性值
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (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 传递相关配置来创建请求
```
// 发送 POST 请求
axios({
  method: 'post',
  url: '/user/12345',
  data: {
    name: 'jack',
    age: 18
  }
});
// 发送 GET 请求(默认的方法)
axios('/user/12345');
```
+ 配置项
 - 可以通过axios.default设置全局默认属性
 如配置根路径:axios.default.baseURL = 'http://localhost:8080'
 - 也可以自定义实例默认值
```
var instance = axios.create({
  baseURL: 'https://api.example.com'
});
//这样就可以通过实例来发送请求了
instance.get('/index')
```
## 3. 拦截器
在请求或响应在被then或catch处理前拦截它们
```
//添加请求拦截器
axios.interceptor.request.use(function (config) {
    //在发起请求之前要做什么
    return config
},function (error) {
    // 请求错误时做什么
    return Promise.reject(error)
})
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });
```

猜你喜欢

转载自www.cnblogs.com/superjsman/p/10049604.html