您的位置:首页 > 其它

CORS解决跨域问题后,ajax无法获取服务器自定义的header信息

2018-11-14 16:50 696 查看

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名称的描述如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐