天天看點

CORS解決跨域問題後,ajax無法擷取伺服器自定義的header資訊

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")
           

有關header名稱的描述如下

CORS解決跨域問題後,ajax無法擷取伺服器自定義的header資訊
上一篇: JS-ECMA5和ECMA6
下一篇: 天空之城

繼續閱讀