前端无法获取Django自定义响应头 Response Header

现象:

        Django自定义响应头uuid,前端无法获取uuid的值

response = HttpResponse(image,content_type='image/jpeg')
response['uuid'] = UUID
return response

原因 :

        跨域问题 启用跨域请求(CORS)

        在使用CORS方式跨域时,浏览器只会返回 默认的头部 Header,认情况下可用的响应头包括:

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma

 解决:

        使用 Access-Control-Expose-Headers

        Access-Control-Expose-Headers 响应报头 指示哪些报头可以 公开 为通过列出他们的名字的响应的一部分
        默认情况下,只显示6个简单的响应头,在上方也有介绍。
        如果你想要客户端能够访问其他的请求头,则必须使用Access-Control-Expose-Headers 列出他们。

UUID = str(uuid.uuid4())
l_uuid=UUID.split('-')
UUID=''.join(l_uuid)
response = HttpResponse(image,content_type='image/jpeg')
response['uuid'] = UUID
response['Access-Control-Expose-Headers'] = 'uuid' 
return response

你可能感兴趣的:(django问题,django,python)