Django通過(guò)設(shè)置CORS解決跨域問(wèn)題
一、Ajax 跨域請(qǐng)求
Ajax 請(qǐng)求一個(gè)目標(biāo)地址為非本域(協(xié)議、主機(jī)、端口任意一個(gè)不同)的 web 資源。
前端
http://192.168.10.50:8080
后端
http://192.168.10.50:8000
Ajax 跨域請(qǐng)求保護(hù)的作用:防止跨站的攻擊。
二、如何解決跨域的訪(fǎng)問(wèn)
當(dāng)我們?cè)诂F(xiàn)實(shí)當(dāng)中有需要跨域訪(fǎng)問(wèn)資源,有兩種解決方案:
- 前端解決:jsonp
- 后端解決(Django):CORS 專(zhuān)門(mén)解決方案
這篇文章主要介紹使用 Django 框架進(jìn)行開(kāi)發(fā)時(shí)的后端解決方案。
三、Django 解決跨域問(wèn)題
Django 框架中通過(guò) django-cors-headers 這個(gè)模塊解決。
1. 安裝
pip install django-cors-headers
2. 注冊(cè)應(yīng)用
注冊(cè)到 settings 的 INSTALLED_APPS 中。
INSTALLED_APPS = ( ... 'corsheaders', ... )
3. 添加到中間件
添加到 settings 的 MIDDLEWARE 中,一般放在 django.middleware.csrf.CsrfViewMiddleware 前面。
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', ... ]
4. 添加白名單
添加允許訪(fǎng)問(wèn)的白名單,凡是出現(xiàn)在白名單的域名都可以訪(fǎng)問(wèn)后端接口。
# 添加 CORS 配置 # 1. 設(shè)置白名單 CORS_ORIGIN_WHITELIST = ( '127.0.0.1:8080', 'localhost:8080', 'http://192.168.10.50:8080', # 凡是出現(xiàn)在白名單中的域名,都可以訪(fǎng)問(wèn)后端接口 ) # 2. 設(shè)置 CORS Cookie CORS_ALLOW_CREDENTIALS = True # 指明在跨域訪(fǎng)問(wèn)中,后端是否支持對(duì)cookie的操作
到此這篇關(guān)于Django 通過(guò)設(shè)置CORS解決跨域問(wèn)題的文章就介紹到這了,更多相關(guān)Django CORS跨域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python django集成cas驗(yàn)證系統(tǒng)
cas是什么東西就不多說(shuō)了,簡(jiǎn)而言之就是單點(diǎn)登陸系統(tǒng),一處登陸,全網(wǎng)有權(quán)限的系統(tǒng)均可以訪(fǎng)問(wèn)2014-07-07
Python常見(jiàn)類(lèi)型轉(zhuǎn)換的小結(jié)
本文主要介紹了Python常見(jiàn)類(lèi)型轉(zhuǎn)換的小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
python實(shí)現(xiàn)代碼統(tǒng)計(jì)程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)代碼統(tǒng)計(jì)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
pycharm 2021.3最新激活碼有效期至2100年(親測(cè)可用)
這篇文章主要介紹了pycharm 2021.3最新激活碼有效期至2100年(親測(cè)可用)2021-02-02
Tensorflow矩陣運(yùn)算實(shí)例(矩陣相乘,點(diǎn)乘,行/列累加)
今天小編就為大家分享一篇Tensorflow矩陣運(yùn)算實(shí)例(矩陣相乘,點(diǎn)乘,行/列累加),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python的Django REST框架中的序列化及請(qǐng)求和返回
這篇文章主要介紹了Python的Django REST框架中的序列化及請(qǐng)求和返回,使用Django REST來(lái)實(shí)現(xiàn)RESTful web service非常方便和強(qiáng)大,需要的朋友可以參考下2016-04-04

