最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django中Cookie設(shè)置及跨域問(wèn)題處理詳解

 更新時(shí)間:2021年09月18日 11:34:14   作者:ProgramNotes  
本文主要介紹了Django中Cookie設(shè)置及跨域問(wèn)題處理,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

什么是Cookie(翻譯:曲奇餅干)

Cookie是存儲(chǔ)在瀏覽器中的一段純文本信息(簡(jiǎn)單的說(shuō)就是瀏覽器緩存),用來(lái)記錄用戶的使用情況并將其存儲(chǔ)在本地設(shè)備中,當(dāng)用戶訪問(wèn)服務(wù)器時(shí)會(huì)將Cookie附帶上,服務(wù)端通過(guò)讀取Cookie的記錄,來(lái)維持用戶與服務(wù)器的會(huì)話狀態(tài)。

Cookie怎么來(lái)的

Cookie是由服務(wù)器生成的,通常以鍵值對(duì)的格式呈現(xiàn)(鍵值由服務(wù)器端開(kāi)發(fā)者自行定義),當(dāng)用戶通過(guò)了瀏覽器訪問(wèn)服務(wù)器時(shí),服務(wù)器會(huì)在返回?cái)?shù)據(jù)的時(shí)候把Cookie傳給瀏覽器(建議不要存儲(chǔ)敏感信息,因?yàn)闉g覽器可能被多人使用)。

為什么要用Cookie

Cookie是由HTTP服務(wù)器設(shè)置的,而HTTP協(xié)議是一種無(wú)狀態(tài)協(xié)議,瀏覽器與服務(wù)器使用Socket套接字進(jìn)行通信,當(dāng)服務(wù)器將請(qǐng)求結(jié)果返回給瀏覽器之后就會(huì)關(guān)閉當(dāng)前的Socket連接并釋放資源,所以每次請(qǐng)求數(shù)據(jù)都需要建立新的連接。 Cookie的出現(xiàn)彌補(bǔ)了這個(gè)缺點(diǎn),當(dāng)瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí),會(huì)將瀏覽器中存儲(chǔ)的跟網(wǎng)站相關(guān)的所有Cookie信息提交給網(wǎng)站服務(wù)器,服務(wù)器通過(guò)Cookie中的信息來(lái)驗(yàn)證用戶身份和判斷HTTP傳輸狀態(tài),并將符合條件的數(shù)據(jù)返回給瀏覽器。

Cookie的特點(diǎn)

Cookie是基于作用域設(shè)計(jì)的,也就是說(shuō)同一域名下只能訪問(wèn)到當(dāng)前域名下的Cookie信息,無(wú)法訪問(wèn)到其他域名的Cookie信息的。

怎么設(shè)置Cookie

Django可以通過(guò)HttpResponse來(lái)響應(yīng)對(duì)象的set_cookie,設(shè)置好對(duì)應(yīng)的視圖和路由,只要通過(guò)瀏覽器訪問(wèn)該路由,瀏覽器就會(huì)自動(dòng)獲取到set_cookie值并存入到本地(當(dāng)瀏覽器正在運(yùn)行時(shí)通常都存在內(nèi)存中,當(dāng)瀏覽器關(guān)閉時(shí)通常會(huì)存入硬盤(pán)中)。

Cookie常用參數(shù)

在設(shè)置Cookie時(shí)可以多參數(shù)定義,這個(gè)可以根據(jù)自己的需求來(lái)定義,最少要有key和value,其他可省略不填,方法是:response.set_cookie('鍵', '值')。

key:鍵
value:值
max_age:多久后過(guò)期,時(shí)間為秒,默認(rèn)為None,臨時(shí)cookie設(shè)置即關(guān)閉瀏覽器就消失
expires:過(guò)期時(shí)間,具體時(shí)間
path:生效路徑,默認(rèn)‘/'
domain:生效的域名,你綁定的域名
secure:HTTPS傳輸時(shí)應(yīng)設(shè)置為true,默認(rèn)為false
httponly:值應(yīng)用于http傳輸,這時(shí)JavaScript無(wú)法獲取

怎么獲取Cookie

Django可以通過(guò)HttpResponse請(qǐng)求對(duì)象的COOKIES屬性來(lái)讀取Cookie,方法是:request.COOKIES.get('鍵'),這樣我們?cè)跒g覽器訪問(wèn)路由時(shí)就能直接獲取到之前設(shè)置好的Cookie了。

Cookie跨域問(wèn)題處理

前面我們只是簡(jiǎn)單的進(jìn)行了路由請(qǐng)求,那么結(jié)合到系統(tǒng)中來(lái)又會(huì)是怎樣的呢,我把Cookie帶入到項(xiàng)目中來(lái)(前后端分離模式),我們會(huì)發(fā)現(xiàn),同樣的代碼在前面始終無(wú)法獲取到Cookie值,這是怎么回事呢?前面有提到Cookie是基于安全域設(shè)計(jì)的,所以是不支持跨域處理的 ,那么我們?cè)趺磥?lái)實(shí)現(xiàn)跨域訪問(wèn)呢。這里我們要采用的是“跨域資源共享”,一種可以讓瀏覽器獲得訪問(wèn)不同源服務(wù)器指定資源的權(quán)限機(jī)制,通過(guò)它Axios在訪問(wèn)服務(wù)器時(shí)能攜帶著Cookie回來(lái)。

首先需要axios能夠獲取到Cookie,出于安全考慮瀏覽器默認(rèn)是不支持獲取跨域Cookie的,所以這里我們需要對(duì)axios設(shè)置進(jìn)行下修改,將withCredentials屬性設(shè)置為true,即允許瀏覽器設(shè)置或獲取Cookie。設(shè)置方法直接在main.js中進(jìn)行全局設(shè)置,axios.defaults.withCredentials = true 。

      當(dāng)服務(wù)器接收到請(qǐng)求后,會(huì)根據(jù)自己的跨域規(guī)則,決定是否同意這次請(qǐng)求,而這個(gè)規(guī)則在請(qǐng)求設(shè)置Cookie時(shí)就要給定,這里主要要設(shè)置Access-Control-Allow-Origin和Access-Control-Allow-Credentials屬性,Access-Control-Allow-Origin默認(rèn)為‘*',這里需要改成前端ip,Access-Control-Allow-Credentials改為true即可。

到此這篇關(guān)于Django中Cookie設(shè)置及跨域問(wèn)題處理詳解的文章就介紹到這了,更多相關(guān)Django中Cookie設(shè)置及跨域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 舉例詳解Python中循環(huán)語(yǔ)句的嵌套使用

    舉例詳解Python中循環(huán)語(yǔ)句的嵌套使用

    這篇文章主要介紹了舉例詳解Python中循環(huán)語(yǔ)句的嵌套使用,是Python入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 使用Pytorch實(shí)現(xiàn)Swish激活函數(shù)的示例詳解

    使用Pytorch實(shí)現(xiàn)Swish激活函數(shù)的示例詳解

    激活函數(shù)是人工神經(jīng)網(wǎng)絡(luò)的基本組成部分,他們將非線性引入模型,使其能夠?qū)W習(xí)數(shù)據(jù)中的復(fù)雜關(guān)系,Swish 激活函數(shù)就是此類(lèi)激活函數(shù)之一,在本文中,我們將深入研究 Swish 激活函數(shù),提供數(shù)學(xué)公式,探索其相對(duì)于 ReLU 的優(yōu)勢(shì),并使用 PyTorch 演示其實(shí)現(xiàn)
    2023-11-11
  • pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得

    pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得

    這篇文章主要給大家介紹了關(guān)于pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pandas具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解

    使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解

    Mixin模式也可以看作是一種組合模式,綜合多個(gè)類(lèi)的功能來(lái)產(chǎn)生一個(gè)類(lèi)而不通過(guò)繼承來(lái)實(shí)現(xiàn),下面就來(lái)整理一下使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解:
    2016-06-06
  • Python3 replace()函數(shù)使用方法

    Python3 replace()函數(shù)使用方法

    這篇文章主要介紹了Python3 replace()函數(shù)使用方法,需要的朋友可以參考下
    2018-03-03
  • python定時(shí)執(zhí)行指定函數(shù)的方法

    python定時(shí)執(zhí)行指定函數(shù)的方法

    這篇文章主要介紹了python定時(shí)執(zhí)行指定函數(shù)的方法,涉及Python中sleep方法延時(shí)執(zhí)行的相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • python mac下安裝虛擬環(huán)境的圖文教程

    python mac下安裝虛擬環(huán)境的圖文教程

    這篇文章主要介紹了python mac下安裝虛擬環(huán)境 的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • python自定義時(shí)鐘類(lèi)、定時(shí)任務(wù)類(lèi)

    python自定義時(shí)鐘類(lèi)、定時(shí)任務(wù)類(lèi)

    這篇文章主要為大家詳細(xì)介紹了Python自定義時(shí)鐘類(lèi)、定時(shí)任務(wù)類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python腳本/代碼的幾種常見(jiàn)運(yùn)行方式

    Python腳本/代碼的幾種常見(jiàn)運(yùn)行方式

    我們知道,python腳本或者說(shuō)python程序其實(shí)是一個(gè)包含了python代碼的文件,通過(guò)運(yùn)行python代碼,我們可以驗(yàn)證腳本/程序是否按照我們的期望執(zhí)行,在python中,有多種方式來(lái)運(yùn)行腳本或程序,取決于小伙伴們的需求,接下來(lái)小編將介紹幾種常見(jiàn)的 python 代碼運(yùn)行方式
    2023-10-10
  • 關(guān)于Pycharm配置翻譯插件Translation報(bào)錯(cuò)更新TTK失敗不能使用的問(wèn)題

    關(guān)于Pycharm配置翻譯插件Translation報(bào)錯(cuò)更新TTK失敗不能使用的問(wèn)題

    這篇文章主要介紹了關(guān)于Pycharm配置翻譯插件Translation報(bào)錯(cuò)更新TTK失敗不能使用的問(wèn)題,本文通過(guò)圖文并茂的形式給大家分享解決方案,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

翁源县| 南乐县| 沭阳县| 陕西省| 历史| 长武县| 合水县| 广南县| 上林县| 定南县| 清河县| 铜川市| 嘉黎县| 苍南县| 大埔区| 宜都市| 会宁县| 安岳县| 平远县| 崇信县| 乌兰县| 荣昌县| 东乌| 北宁市| 金山区| 罗定市| 宣威市| 丁青县| 定州市| 大余县| 连云港市| 阳曲县| 铁力市| 崇文区| 大名县| 女性| 绥阳县| 中江县| 岫岩| 崇明县| 长葛市|