zoukankan      html  css  js  c++  java
  • axios发送自定义请求头的跨域解决

    前端发送来的axios请求信息

    this.$axios.request({
      url:'http://127.0.0.1:8001/pay/shoppingcar/',
      method:'post',
      headers:{
        authenticate:'a073b3dabbb140e8b9d28debb6a356a1'  # 自定义的请求头部信息键值对,
      },  # 接上,这种key也算是一种请求头,需要加入django中间件内豁免的头部信息内.
      data:{
        course_id:course_id,
        price_policy_id:price_policy_id
      }
    }).then(function (data) {
      if(data.status==200){alert('加入购物车成功')}
    })

    针对以上这种带有自定义头部信息的复杂请求,需要在认证内判断请求是否是预检的options请求,如果是

    则直接return None,后续的几个组件内会把它作为匿名用户处理,然后进入源码中的options视图内返回,

    返回的对象在经过中间件的procee_response,给它的头部信息加入要豁免的请求头.

    认证组件内authenticate方法中加入以下代码:

    if request.method=='OPTIONS':
        return None

    中间件中代码加头部信息中自定义的key: 如下:

    response["Access-Control-Allow-Headers"] = "Content-Type, AUTHENTICATE "  # 内容类型

  • 相关阅读:
    LeetCode 55. 跳跃游戏(Jump Game)I II tag 数组 贪心 动态规划
    科学的意义
    umi前后端交互技术,通用型request配置
    TD demo在我们机器上
    Ubuntu挂载和登录服务器
    TD属性总结
    TD音乐界面添加keyboard的流程
    VS Code常用键
    TD打印 log方法
    TD自定义控件流程
  • 原文地址:https://www.cnblogs.com/quzq/p/10023295.html
Copyright © 2011-2022 走看看