目录
一、GET 和 POST 传参方式的优缺点
二、GET 和 POST 传参方式的请求过程
post请求的过程:
get请求的过程
三、axios使用
1、axios的安装
2、axios的引入
3、get
4、post
四、拦截器
1、请求拦截器
2、响应拦截器
一、GET 和 POST 传参方式的优缺点
更安全(不会作为url的一部分,不会被缓存,保存在服务器日志,以及浏览器浏览记录中)
发送的数据量更大(get有url长度限制)
能发送更多的数据类型(get只能发送ASCII字符)
比get慢
是向服务器提交数据的一种请求,get是向服务器发索取数据的一种请求。
是向服务器提交数据的一种请求,get是向服务器发索取数据的一种请求。
请求包含更多的请求头
在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
二、GET 和 POST 传参方式的请求过程
post请求的过程:
1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进 行第一次数据发送)
4.服务器返回100 continue响应
5.浏览器开始发送数据
6.服务器返回200 ok响应
get请求的过程
1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
4.服务器返回200 ok响应。
三、axios使用
1、axios的安装
$ npm install axios // 使用npm
$ bower install axios // 使用bower
<script src="/axios/dist/"></script> // 通过cdn直接调用
2、axios的引入
import axios from 'axios';
3、get
第一种参(参数在url上)
('/adate?id=123').then(res => {
(res);
})
第二种传参(通过param选项传递参数)
('/adate?id=123',{
params: {
id: 1
}
}).then(res => {
(res);
})
4、post
('/api/axios', {
uname: 'lisi',
pwd: 123
}).then(ret => {
()
})
四、拦截器
1、请求拦截器
import axios from 'axios'
const service = ({
baseURL: '基础路径',
timeout: 15000
})
//添加请求拦截器 请求接口统一添加token
(
config =>{
// 成功的回调
},
error =>{
// 失败的回调
}
)
export default service
2、响应拦截器
import axios from 'axios'
const service = ({
baseURL: '基础路径',
timeout: 15000
})
// 响应拦截器
(
response => {
// 成功回调
},
error => {
// 失败回调
}
)
export default service
3、案例
/**
* 请求封装
*/
import axios from 'axios';
import configUrl from './';
import store from '../store';
const service = ({
baseURL: ,
// withCredentials: true, // 当跨域请求时发送cookie
timeout: 15000 // 请求超时
});
//添加请求拦截器 请求接口统一添加token
(
config =>{
= || ''; //请求添加token
return config;
},
error =>{
return (error);
}
)
// 响应拦截器
(
response => {
//如果接口返回token,替换本地旧token
if () {
("token", );
}
//自定义设置后台返回code对应的响应方式
if ( == 203) { // 未登录或登录超时
return (new Error('登录超时'));
} else { //接口正常,返回数据
return response;
}
},
error => {
if () {
// this.$('服务器开小差了,请稍后再试!')
//错误响应
alert('服务器开小差了,请稍后再试!')
}
return (error);
}
);
//暴露出封装过的服务
export default service;