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信息_第1张图片

你可能感兴趣的:(Django)