axios 默认配置和实例配置

默认配置

在axios配置中存在baseUrl,header等配置,每次做的axios时,不一定所有的配置都要自己写,这时候要做一个默认值,例如:

axios.defaults.baseURL ="http://localhost:8080"

之后调用如下post方法,请求的接口地址就是 http://localhost:8080/user

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

当然axios的配置可以不依赖于默认,如果进行如下参数配置,那么请求的接口地址就是http://localhost:9999/user

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

 实例配置

或许你也知道可以通过axios.create(config) 对axios请求进行二次封装

  1. 根据指定配置创建一个新的 axios ,也就是每个axios 都有自己的配置
  2. 新的 axios 只是没有 取消请求 和 批量请求 的方法,其它所有语法都是一致的
  3. 为什么要这种语法?
    1. 需求,项目中有部分接口需要的配置与另一部分接口的配置不太一样
    2. 解决:创建2个新的 axios ,每个都有自己的配置,分别对应不同要求的接口请求中
  4. 一定要注意,这里的需求是同时需要做不一样的接口配置的时候才这样操作,如果是生产环境和开发环境的接口不一样,就需要进行环境的配置,这是不一样的需求。
//创建实例
var instance = axios.create();
instance.defaults.timeout= 2500
instance.get('/url',{
    timeout:2000
})

执行顺序是,默认值,实例默认值,参数设置值,后者会覆盖前者

说到实例经常我们的使用场景是这样的:

//main.js
var instance1 = axios.create({
  baseURL: 'http://localhost:9999/api1',
  timeout: 1000
});

var instance2 = axios.create({
  baseURL: 'http://localhost:9998/api2',
  timeout: 2000
});

var instance3 = axios.create({
  baseURL: 'http://localhost:9997/api3',
  timeout: 3000
});


Vue.prototype.$http1=instance1 ;
Vue.prototype.$http2=instance2 ;
Vue.prototype.$http3=instance3 ;

 Vue为何要设置Vue.prototype.$http1=instance1 ,请参考这个博客

//使用这个实例
this.$http1({
    method: 'post',
    url: 'user',
    data: {
        userId: "001"
    }
}).then(res => {
    console.log(res);
}).catch(err => {
    console.log(err);
})

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
axios是一个基于Promise的HTTP客户端,用于发送HTTP请求。它可以在浏览器和Node.js中使用。下面是axios的post请求配置的介绍: 1. 使用axios发送POST请求的基本语法如下: ```javascript axios.post(url, data, config) .then(response => { // 请求成功后的处理 }) .catch(error => { // 请求失败后的处理 }); ``` 其中,`url`是请求的URL地址,`data`是要发送的数据,`config`是可选的配置对象。 2. 可选的配置项包括: - `headers`:设置请求头信息,例如: ```javascript const config = { headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' } }; ``` - `params`:设置URL参数,例如: ```javascript const config = { params: { id: 1, name: 'example' } }; ``` - `timeout`:设置请求超时时间(毫秒),例如: ```javascript const config = { timeout: 5000 }; ``` - `responseType`:设置响应数据类型,例如: ```javascript const config = { responseType: 'json' }; ``` 3. 可以通过创建axios实例来设置默认配置,例如: ```javascript const instance = axios.create({ baseURL: 'https://api.example.com', timeout: 5000, headers: { 'Content-Type': 'application/json' } }); ``` 然后可以使用`instance.post()`方法发送POST请求。 4. 可以通过拦截器对请求和响应进行全局处理,例如: ```javascript axios.interceptors.request.use(config => { // 在发送请求之前做些什么 return config; }, error => { // 对请求错误做些什么 return Promise.reject(error); }); axios.interceptors.response.use(response => { // 对响应数据做些什么 return response; }, error => { // 对响应错误做些什么 return Promise.reject(error); }); ```
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值