《Django By Example》python那点技术 移动 前端 Python Android Java

AJAX/REACT/VUE等前台response获取不到自定义

2019-03-06  本文已影响1人  不爱去冒险的少年y
原因:跨域后系统为了安全去掉自定义头
解决方法:

django后台
后端在返回response时,加上header Access-Control-Expose-Headers
如下:response['Content-Disposition'] ='' #自定义头
response['Access-Control-Expose-Headers'] = "Content-Disposition" #Content-Disposition为自定义头的key

response = HttpResponse(content=result, content_type="application/octet-stream", charset="utf-8")
                response['Content-Disposition'] = 'attachment; filename='+reports_name  # 自定义响应头
                response['Access-Control-Expose-Headers'] = "Content-Disposition"  # 通过此header允许前端访问 解决跨域后系统为了安全去掉自定义头
                return response

VUE前台

    // 下载文件
    downloadReport(e) {
      this.$axios({
        method: "post",
        url: this.$path + "tests/batteryReportDownload/",
        data: {
        }
      }).then(res => {
          let headers = res.headers;
          let fileName = headers["content-disposition"];  #获取自定义头
      });
    },
image.png
上一篇 下一篇

猜你喜欢

热点阅读