适用范围:
使用前提
- 浏览器环境
作用:
- 前端发送请求到网络api
优点:
- 无刷新获取数据(与后端交互)
缺点:
- 没有浏览历史, 不能返回
- 存在CORS限制
特点:
- 对爬虫不友好, 因为数据是js动态添加到页面的, 所以直接查看HTML源代码, 是找不到新数据的
相关概念:
使用指南
原生Ajax
语法:
child::原生Ajax
JQuery中的ajax封装
低度封装
$.ajax({
url: '21json.php',
type: 'get',
// 设置的是请求参数
data: {
id: 1,
name: '张三'
},
dataType: 'json', // 用于设置响应体的类型 注意 跟 data 参数没关系!!!
success: function (res) {
// 一旦设置的 dataType 选项,就不再关心 服务端 响应的 Content-Type 了
// 客户端会主观认为服务端返回的就是 JSON 格式的字符串
console.log(res);
}
});高度封装
$.get('21json.php', { //发送get请求
id: 1
}, function (res) {
console.log(res);
});
$.post('21json.php', { //发送post请求
id: 1
}, function (res) {
console.log(res);
});
$.getJSON('21json.php', { //发送get请求,并将数据转为json数据(无视服务端Content-type)
id: 1
}, function (res) {
console.log(res);
});
$.getScript("./23test.js", function (data, textStatus, jqxhr) { //执行一个js文件的代码
console.log(data); //data returned
console.log(textStatus); //success
console.log(jqxhr.status); //200
});
//可以返回promise
let projReq = $.get("./js/all-data.json").then(res=>projs=res)