Django + Vue 前後分離,利用CORS解決跨域問題後,ajax無法擷取伺服器自定義的header資訊
服務端有時需要把自定義資訊(token)放到response header中傳回,在浏覽器網絡菜單裡,可以看到所有的response header資訊,包含服務端自定義的header資訊。但是前端擷取自定義資訊(token)為null,服務端在response header中添加自定義資訊(token)的同時,添加如下資訊:
#token為自定義資訊的 鍵
"Access-Control-Expose-Headers": "token"
Django下解決方案如下
問題描述
Django編寫工程時,實作前後端分離,前端使用的Vue + ajax ,服務端有時需要把自定義資訊(token)放到response header中傳回,方法如下
在views函數下添加:
#将傳回資訊賦予一個對象
obj = HttpResponse("這是響應的資訊")
#添加response header 資訊,鍵為:token, 值為:123456
obj.__setitem__("token", "123456")
#傳回這個對象
return obj
此時在浏覽器網絡菜單裡,可以看到所有的response header資訊,包含服務端自定義的header資訊。但是前端ajax擷取自定義資訊(token)為null
解決方案
服務端在response header中添加自定義資訊(token)的同時,添加如下資訊
"Access-Control-Expose-Headers": "token"
django添加方法如下
在views函數下添加:
obj.__setitem__("Access-Control-Expose-Headers", "token")