响应头配置: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>