可以通过自定义请求头信息的方式,从而使得服务器能够更加灵活地处理各类请求。比如判断是不是ajax请求,携带服务器错误代码号来寻找bug等等,具体的使用还要看业务逻辑。
而且,请求头有些信息是不可修改的,如Referer。
简单实验:
前端:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
//设置请求头信息,同时获取响应头信息
$.ajax({
//设置请求头信息——方法一
headers: {
"token1": "xxxx1"
},
//设置请求头信息——方法二
// beforeSend: function (request) {
// request.setRequestHeader("token1", "xxxx2");//设置请求头信息
// },
url:'test.php',
type:'POST',
data:{},
dataType:'json',
success:function(data){
console.log(data);
},
error:function(err){
console.log(err)
},
complete:function(xhr, data){
console.log(xhr, data);//通过打印可以进一步了解详细信息从而进行下一步操作
var time=xhr.getResponseHeader('Date');// 服务器端时间
var list = xhr.getAllResponseHeaders();//获取头部全部信息
console.log(time, list);
}
})
</script>
</body>
</html>
后端:
<?php
header('Content-type: application/html');//自定义响应头信息
header("is_get:yes");//自定义响应头信息
$res = 100;
$text = "OK";
$data = null;
die(json_encode(array("res"=>$res,"text"=>$text,"data"=>$data)));//返回数据
?>
请求头自定义的信息:
响应头自定义的信息: