1、ajax
$.ajax({
type: 'POST',
url: url,
data: data,
dataType: dataType,
success: function () {},
error: function () {}
})
优缺点:
(1)本身是针对MVC的编程开发,不符合现在的MVVM 的浪潮
(2)基于原声的XHR 开发,XHR 本身 的架构不清晰,已经有了fetch的替代方案
(3)JQuery 整个项目太大,单纯使用ajax 却要引入整个JQuery 不合理
2、axios
axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Fred',
lastName: 'Flintstone'
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
优缺点:
(1)从node.js 创建http请求
(2)支持Promise API
(3)客户端防止CSRF
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
攻击者盗用你的身份 以你的身份发送恶意请求
PS:防止CSRF:就是让你的每个请求都带一个从cookie中拿到的key, 根据浏览器同源策略,假冒的网站是拿不到你cookie中得key的,这样,后台就可以轻松辨别出这个请求是否是用户在假冒网站上的误导输入,从而采取正确的策略**。**
(4)拦截请求和响应
(5)转换请求和响应数据
(6)自动转换JSON 数据
3、fetch
try {
let response = await fetch(url);
let data = response.json();
console.log(data);
} catch(e) {
console.log("Oops, error", e);
}
优缺点:
(1)更好更方便的写法
(2)脱离了XHR
(3)fetch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理
(4)fetch默认不会带cookie,需要添加配置项
参考连接:
https://blog.csdn.net/twodogya/article/details/80223508
https://blog.csdn.net/sinat_17775997/article/details/88654731