1. 程式人生 > >CORS跨域時axios無法獲取伺服器自定義的header資訊

CORS跨域時axios無法獲取伺服器自定義的header資訊

最近用vue.js+axios開發單頁面應用時,需要把自定義資訊(token,uid)放到response  header中返回,如下
<?php
header("token:www.uxuew.cn");
header("uid:100");
?>
然後在客戶端獲取在伺服器端自定義的header資訊:
const request = axios.post('http://vue.uxuew.cn/login`,props);
request.then((response)=>{
  console.log(response.headers);
});
但是我得到的結果裡卻沒有我自定義的值
Object
{ content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate" }
在瀏覽器網路選單裡,去可以看到所有的response  header資訊,包含伺服器端自定義的。

原因:

在使用CORS方式跨域時,瀏覽器只會返回以下預設頭部header:
  • response  header
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma
如果你想在客戶端app中獲取自定義的header資訊,需要在伺服器端header中新增Access-Control-Expose-Headers:
header('Access-Control-Expose-Headers:token,uid');