Axios、axios攔截器、fetch-jsonp ——0807
一、axios——vue資料請求外掛
用來請求
cross
跨域的 api 介面的外掛。
1、axios的使用
1、安裝axios:
cnpm install --save-dev axios
2、引入並使用
全域性引入並關聯、使用
main.js裡邊:
import Axios from 'axios'
Vue.prototype.$axios=Axios;
元件裡邊使用:
//元件掛載完成之後進行資料請求
mounted(){
this.$axios
.get("") //請求路徑
.then((res) => {
console.log(res); //返回的資料
})
.catch((error) => {
console.log(error);
})
.finally(() => {
console.log("最後處理");
});
}
也可以傳送post請求並傳參,具體用法參考 npmjs 官網。
2、axios 攔截器
可以通過封裝的axios
攔截器對ajax
請求和響應做相應的處理,統一處理錯誤及配置請求資訊。
axios
攔截器有兩種:請求攔截器 和 響應攔截器。
具體操作如下:
在src根目錄下新建檔案axios.js,內容如下:
// 封裝axios 攔截器
//引入axios
import Axios from 'axios';
//設定預設的host
Axios.defaults.baseURL = "http://www.maodou.com:8080";
//設定請求攔截器
Axios.interceptors.request.use((config) => {
console.log(config); //ajax請求配置
//...在傳送請求之前做些什麼
return config;
}, (error) => {
//...對請求錯誤做些什麼
return Promise.reject(error);
});
//設定響應攔截器
Axios.interceptors.response.use((response) => {
console.log(response);
//可以對資料做處理
return response;
}, (error) => {
//對響應錯誤做些什麼
return Promise.reject(error);
});
在main.js中進行引入:
//全域性引入
import Axios from 'axios'
import './Axios/axios';
Vue.prototype.$axios=Axios;
在元件中使用:
使用的時候 url 寫半路徑,因為請求攔截器裡邊已經設定過 baseURL。
this.$axios({
method: "get",
url: "/user",
})
.then((res) => {
console.log(res);
})
.catch((error) => {
console.log(error);
});
二、fetch-jsonp
用來請求 jsonp 跨域的 api 介面 的外掛。
JSONP only supports GET method, same as fetch-jsonp.
1、fetch-jsonp 的使用
1、安裝fetch-jsonp
cnpm install --save-dev fetch-jsonp
2、全域性引入 fetch-jsonp,並關聯到vue原型上:
//引入fetch-jsonp
import Fetch from 'fetch-jsonp'
Vue.prototype.$fetch=Fetch;
3、在元件中使用
this.$fetch("/", {
jsonpCallback: "getData", //設定jsonp的回撥函式名稱
timeout: 2000,
})
.then((res) => {
return res.json(); //第一個then是固定的
})
.then((res) => {
console.log(res); //返回的資料
})
.catch((error) => {
console.log(error); //抓異常
});
2、fetch 攔截器
axios有自己的攔截器方法,可以直接調方法;fetch-jsonp 沒有,可以通過類來封裝。
相關文章
- axios 攔截器iOS
- axios攔截器iOS
- axios原始碼分析——攔截器iOS原始碼
- axios 攔截器 的使用方法iOS
- axios攔截器原理是什麼?iOS
- axios的全域性攔截之axios.interceptorsiOS
- 【axios】XHR的ajax封裝+axios攔截器呼叫+請求取消iOS封裝
- vue中使用el-dialog + axios 實現攔截器VueiOS
- 一比一還原axios原始碼(五)—— 攔截器iOS原始碼
- 前端架構之vue+axios 前端實現登入攔截(路由攔截、http攔截)前端架構VueiOS路由HTTP
- 學習axios必知必會(2)~axios基本使用、使用axios前必知細節、axios和例項物件區別、攔截器、取消請求iOS物件
- vue.js新增攔截器,實現token認證(使用axios)Vue.jsiOS
- React、Axios、MockJs實現Ajax的請求攔截ReactiOSMockJS
- 前端快閃四: 攔截axios請求和響應前端iOS
- 基於原生fetch封裝一個帶有攔截器功能的fetch,類似axios的攔截器封裝iOS
- Axios 的簡單概述以及它的一個核心功能攔截器的詳解iOS
- react中進一步封裝axios,對錯誤資訊進行攔截React封裝iOS
- AxiosiOS
- 二次封裝axios,根據引數來實現多個請求多次攔截封裝iOS
- Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高階配置”SpringMVC
- SpringMVC攔截器SpringMVC
- spring攔截器Spring
- sql攔截器SQL
- Mybatis 攔截器MyBatis
- MyBatis攔截器MyBatis
- SpringMVC攔截器,設定不攔截的URLSpringMVC
- Vuex & AxiosVueiOS
- vue axiosVueiOS
- Axios初步iOS
- Mybatis Interceptor 攔截器MyBatis
- spring boot 攔截器Spring Boot
- SpringMVC-攔截器SpringMVC
- gRPC(3):攔截器RPC
- 【SpringMVC】 4.3 攔截器SpringMVC
- Vue2學習小記-給Vue2路由導航鉤子和axios攔截器做個封裝Vue路由iOS封裝
- SpringBoot攔截器中獲取註解、攔截器中注入ServiceSpring Boot
- ajax和fetch、axios的區別以及axios原理iOS
- axios,Ajax,jQuery ajax,axios和fetch的區別iOSjQuery