React、Axios、MockJs實現Ajax的請求攔截
- 工具安裝
npm install axios //axios請求包
npm install mockjs //mockjs庫
2.建立mock.js資料夾,程式碼如下
import Mock from 'mockjs';
const Random = Mock.Random;
// For example:獲取輪播圖
Mock.mock('/api/banners', 'get', {
code: 200,
msg: 'success',
data: {
'banners|1-10': [
{
image_url: Random.image('200x100', Random.color(), Random.color(), 'png', Random.title(5)),
title: Random.ctitle(5),
},
],
},
});
3.在index.js檔案中引入mock資料夾
import './utils/mock.js';
4.Axios簡易封裝
import axios from 'axios';
const instance = axios.create({
timeout: 8000,
withCredentials: false, // default
});
instance.interceptors.request.use(
function (config) {
return config;
},
function (error) {
return Promise.reject(error);
}
);
instance.interceptors.response.use(
function (response) {
return response;
},
function (error) {
return Promise.reject(error);
}
);
export default instance;
- 在index.js檔案裡面引入,掛載到react物件上面,可以在任何例項上面獲取到
import Http from './utils/request.js';
React.Http = Http;
4.在元件中使用Ajax請求,mock會自動攔截
export default class Comment extends Component {
state={
banners:[]
};
async componentDidMount(){
//React.Http 是我把ajax請求繫結在了react上面,可以在任何例項上面獲取到
this.serverRequest = await React.Http.get('/api/banners')
const {data}=this.serverRequest;
if(data.code===200){
this.setState({banners:data.banners})
}
}
componentWillUnmout(){
//由於ajax請求是非同步的,官方提供的方法進行資料的獲取;
this.serverRequest.abort()
}
}
相關文章
- js攔截全域性ajax請求JS
- Android Webview攔截ajax請求AndroidWebView
- 【axios】XHR的ajax封裝+axios攔截器呼叫+請求取消iOS封裝
- React 中用jQuery的ajax 和 axios請求資料ReactjQueryiOS
- vue中用axios攔截器攔截請求和響應VueiOS
- 不能顯式攔截ajax請求的302響應?
- 封裝ajax、axios請求封裝iOS
- 二次封裝axios,根據引數來實現多個請求多次攔截封裝iOS
- 前端架構之vue+axios 前端實現登入攔截(路由攔截、http攔截)前端架構VueiOS路由HTTP
- axios攔截器iOS
- axios 攔截器iOS
- fd攔截請求,修改資料
- KKB : Jquery實現Ajax請求jQuery
- puppeteer去掉同源策略及請求攔截
- vue中使用axios傳送ajax請求VueiOS
- 首頁 使用axios 傳送ajax請求iOS
- 前端快閃四: 攔截axios請求和響應前端iOS
- vue2.0 axios post請求傳參問題(ajax請求)VueiOS
- 實戰SpringCloud通用請求欄位攔截處理SpringGCCloud
- OkHttp 3.7原始碼分析(二)——攔截器&一個實際網路請求的實現HTTP原始碼
- vue中使用el-dialog + axios 實現攔截器VueiOS
- axios的全域性攔截之axios.interceptorsiOS
- Springboot通過攔截器攔截請求資訊收集到日誌Spring Boot
- 利用fetch方法實現Ajax請求
- 實現傳送多個Ajax請求
- axios 攔截器 的使用方法iOS
- iOS 開發中使用 NSURLProtocol 攔截 HTTP 請求iOSProtocolHTTP
- SpringBoot解決跨域請求攔截Spring Boot跨域
- 【轉】AngularJs HTTP請求響應攔截器AngularJSHTTP
- vue.js新增攔截器,實現token認證(使用axios)Vue.jsiOS
- Java實現的攔截器Java
- axios原始碼分析——攔截器iOS原始碼
- 網路請求-手把手實現axiosiOS
- 有沒有什麼網路請求攔截的庫?
- Vue元件化時使用axios處理ajax請求的使用Vue元件化iOS
- Ajax+SpringMVC實現跨域請求SpringMVC跨域
- ajax跨域post請求,如何實現呢跨域
- axios 請求iOS