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 "  # 內容類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM