框架内部的http请求是基于axios进行的扩展,除了保留axios原有的请求方式外,还扩展了如下请求方式:
```
postJson(url, params, config);
```
* url:请求地址。**必填**
* params:请求参数。**选填**
* config:axios的配置,**选填**
<br/>**同时针对axios的config也进行了扩展,新增参数如下:**
> **所有的请求默认都会添加一个全局的遮罩,如果不需要遮罩,请在config中添加loading:false的配置项。**
```
//此处仅以post请求方式为例,其他方式也支持。
.post('http://jboot.e7lu.cn', {id: '11'}, {
errorTip: boolean, //请求异常时,是否自动弹出异常信息提示。默认为true。3.1.3690版本起,也可通过全局http配置项disabledErrorTip统一关闭异常提示。
loading: boolean, //请求发送时,是否展示loading,默认是true,不需要的请求可以显示声明为false值。也可通过配置项全局禁用,详见【开始使用】章节的httpConfig部分。
loadingId: string, //框架内部用于记录loadingId的。不要随意修改!
download: boolean, //是否是下载请求,默认为false,如果值为true,那么请求会自动修改返回类型为blob,并执行下载操作。
downloadFileName: string //当前请求是下载类型时,该属性用于声明文件的名称。非必填。
});
```
<br/>**在axios的基础上,增加mock的支持,使用方式如下:**
```
//此处仅以post请求方式为例,其他方式也支持。
const mockResult = function(params){ //params为请求传输的参数,在此处代表{id:'11'}
return {
name: '张三',
age: 25,
...
}
或
return [
{id: '1', name: '张三'},
{id: '2', name: '李四'},
...
]
};
.post('http://jboot.e7lu.cn',{id: '11'},{
//将mock属性注释掉以后,该请求就会正常发送。
mock: mockResult
})
也可采用this.$ajax.mock(mockResult).post()或api文件中使用http.mock(mockResult).post()的方式。
```
<br/>**增加请求合并功能,用于相同接口请求在不同组件并发时的场景。使用方式如下:**
```
//此处仅以post请求方式为例,其他方式也支持。
.post('http://jboot.e7lu.cn',{id: '11'},{
merge: true //此属性代表该请求并发时,只请求一次,共用同一份接口返回数据。
})
```
<br/>**增加请求缓存功能,用于接口数据基本不变的情况,缓存结果,下次请求直接返回该结果,避免重复请求。使用方式如下:**
```
//此处仅以post请求方式为例,其他方式也支持。
.post('http://jboot.e7lu.cn',{id: '11'},{
cache: 'local' //可选值为local(存储到localStorage中)、session(存储到sessionStorage中)
})
```