框架內部的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中)
})
```