Django跨域請求無法傳遞Cookie的解決
問題
在使用 Django + Vue 進行前后端分離開發(fā)時,發(fā)現(xiàn)在跨域訪問情況下,后臺 HttpResponse 在使用 set_cookie 方法后,瀏覽器無法獲取 Cookie。
解決方法
Django 端使用 django-cors-headers 解決跨域問題,修改 settings.py 文件。
具體方案:
對 axios 進行設(shè)置,允許瀏覽器設(shè)置或獲取Cookie。
axios.defaults.withCredentials = true;
Django 之 Cookie 操作
from django.http import HttpResponse # 設(shè)置 Cookie response = HttpResponse('OK') response.set_cookie('key', 'value') # 獲取 Cookie request.COOKIES['key'] request.COOKIES.get['key'] # 刪除 Cookie response.delete_cookie('key')
補充:【解決方案】前后端分離之后,請求跨域無法傳遞cookie的問題
前端關(guān)鍵代碼:
如圖,在請求上加個 withCredentials: true 即可。
當(dāng)然,這只是前端打開一個開口而已,后端做的事情可就多了。
如圖,后端服務(wù)在進行跨域處理的時候,需要將 Access-Control-Allow-Credentials 設(shè)為 true 即可。
原理:
以上前后端設(shè)置的ture屬性(withCredentials、Access-Control-Allow-Credentials),都是允許跨域發(fā)送cookie的一個開關(guān)設(shè)置,需要前后端都做到打開模式。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
使用BeeWare實現(xiàn)iOS調(diào)用Python方式
這篇文章主要介紹了使用BeeWare實現(xiàn)iOS調(diào)用Python方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Python的Django中django-userena組件的簡單使用教程
這篇文章主要介紹了Python的Django中django-userena組件的簡單使用教程,包括用戶登陸和注冊等簡單功能的實現(xiàn),需要的朋友可以參考下2015-05-05python yield和Generator函數(shù)用法詳解
這篇文章主要介紹了python yield和Generator函數(shù)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02Python headers請求頭如何實現(xiàn)快速添加
這篇文章主要介紹了Python headers請求頭如何實現(xiàn)快速添加,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11python使用paramiko實現(xiàn)ssh的功能詳解
這篇文章主要介紹了python使用paramiko實現(xiàn)ssh的功能詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03python不使用for計算兩組、多個矩形兩兩間的iou方式
今天小編就為大家分享一篇python不使用for計算兩組、多個矩形兩兩間的iou方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01