Django跨域請求無法傳遞Cookie的解決
問題
在使用 Django + Vue 進(jìn)行前后端分離開發(fā)時(shí),發(fā)現(xiàn)在跨域訪問情況下,后臺 HttpResponse 在使用 set_cookie 方法后,瀏覽器無法獲取 Cookie。
解決方法
Django 端使用 django-cors-headers 解決跨域問題,修改 settings.py 文件。
具體方案:
對 axios 進(jìn)行設(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')
補(bǔ)充:【解決方案】前后端分離之后,請求跨域無法傳遞cookie的問題
前端關(guān)鍵代碼:

如圖,在請求上加個(gè) withCredentials: true 即可。
當(dāng)然,這只是前端打開一個(gè)開口而已,后端做的事情可就多了。

如圖,后端服務(wù)在進(jìn)行跨域處理的時(shí)候,需要將 Access-Control-Allow-Credentials 設(shè)為 true 即可。
原理:
以上前后端設(shè)置的ture屬性(withCredentials、Access-Control-Allow-Credentials),都是允許跨域發(fā)送cookie的一個(gè)開關(guān)設(shè)置,需要前后端都做到打開模式。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
在Python代碼中執(zhí)行Linux命令的詳細(xì)用法教程
在Python開發(fā)過程中,經(jīng)常需要執(zhí)行Linux系統(tǒng)命令來完成各種任務(wù),Python提供了多種方式來調(diào)用和執(zhí)行系統(tǒng)命令,本文將詳細(xì)介紹如何在Python代碼中執(zhí)行Linux命令,并結(jié)合實(shí)際案例來演示這些方法的使用,需要的朋友可以參考下2024-07-07
python之Character string(實(shí)例講解)
下面小編就為大家?guī)硪黄猵ython之Character string(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
Python?解釋器的站點(diǎn)配置和模塊搜索路徑詳解
Python?解釋器的站點(diǎn)配置是指一組配置和路徑設(shè)置,用于支持特定于站點(diǎn)的定制和擴(kuò)展,這些配置和路徑信息由?Python?的內(nèi)置?site?模塊提供,這篇文章主要介紹了Python?解釋器的站點(diǎn)配置和模塊搜索路徑詳解,需要的朋友可以參考下2022-01-01
numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法
下面小編就為大家分享一篇numpy中實(shí)現(xiàn)ndarray數(shù)組返回符合特定條件的索引方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python異步Web框架sanic的實(shí)現(xiàn)
這篇文章主要介紹了python異步Web框架sanic的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

