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