废话不多说,上代码
Ajax 介绍(下)
1、jQuery 调用 Ajax
$.ajax({
type:'post',
url:'test.php',
data:'name = aaa & age = 8',
dataType:'json',
success:function(data){
$('#mydiv').html('
'+data+'
');
},
error:functon(){
alert('error');
},
})
1、Ajax 缓存
Ajax 在发送的数据成功后,会把请求的 URL 和返回的响应结果保存在缓存内。当请求的地址和参数完全一样时,ajax 直接从缓存中获取数据。
客户端对一些静态页面内容的请求变得更加快捷,提高了页面的响应速度,也节省了网络通信资源。
如果通过 Ajax 对一些后台数据进行更改的时候,虽然数据在后台已经发生改变,但是页面缓存中并没有改变,对于相同的 URL,Ajax 提交过去以后,浏览器还只是简单的从缓存中拿数据。
解决这个缓存:
1.在 ajax 发送请求前加上 xmlHttpRequest.setRequestHeader(“Cache-Control”,” no-cache”);
在服务端加 header(“Cache-Control: no-cache, must-revalidate”);
2、react Ajax 框架
react 有很多 ajax 框架,项目采用 fetch
fetch(url, fetchOption).then(function (response) {
return response.json();
}).then(function (json) {
try {
dispatch({
type: options.action,
fetchStatus: 200,
data: json,
error: null,
param: param
});
} catch (err) {
console.log(err);
console.log('fetch succ, dispatch error');
}
callback && callback(json);
// 请求成功回调
}).catch(function (err) {
console.log(err);
dispatch({
type: options.action,
fetchStatus: 1,
msg: '网络不给力,请稍后再试',
error: err,
param: param
});
});
我们通过网络请求 url 资源,将服务器返回的 Body 解析,定义了以下方法解析并返回一个包含 response 对象的 promise 对象,方法有
arrayBuffer()
blob()
json()
text()
formData()
获取解析数据后,我们可以继续操作。