作为程序员一定要保持良好的睡眠,才能好编程

ajax 返回response 获取 headers中的参数

发布时间:2019-08-20




响应头配置:Access-Control-Expose-Headers: <header-name>, <header-name>, ...

header('Access-Control-Expose-Headers: token');  // 坑!服务器 headers 白名单,可以让客户端进行访问操作的属性

响应首部 Access-Control-Expose-Headers 列出了哪些首部可以作为响应的一部分暴露给外部


 需要设置允许客户端访问header头才可进行访问

<?php

header('Access-Control-Expose-Headers: XXXTOKEN');  //允许插入 XXXTOKEN 这个键 
header('XXXTOKEN: 123123');


浏览器默认是不让获得header中其他值,只能获得 Content-Type



<!DOCTYPE html>
<html>
<head>
 
 <meta charset='utf-8' />
    
   
<script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">

$.ajax({
    'url': 'http://127.0.0.1:8011/api/admin/login',
    
    //'contentType': 'application/json',
    'method':'post',
    'headers':{
        //'X-Access-Token':'asdfasd',
		//"X-Requested-With":"XMLHttpRequest",
		//"Weiyi-Env":"development"
    },
    'data':{
        //'type':'1'
    },
	success:function(data,textStatus,xhr){
			console.log('success');
		console.log(data);
		console.log(textStatus);
		console.log(xhr.getResponseHeader('content-type'));
		console.log(xhr.getResponseHeader('content-length'));
				console.log(xhr.getResponseHeader('XXXTOKEN')); //可以获取到 123123的值
		console.log(xhr);

		console.log(xhr.getAllResponseHeaders());
		//跨域只能获取到这些数据
		//last-modified: Thu, 11 Jul 2019 07:23:17 GMT
		//content-type: image/png
		
		console.log(this);
    },
	error:function (XMLHttpRequest, textStatus, errorThrown) {
		console.log(123123123);
      console.log(XMLHttpRequest);
      console.log(textStatus);
      console.log(errorThrown);
	}
});

</script>
</head>
<body>

测试跨域

</body>

</html>




image.png