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ù)的作用:防止跨站的攻擊。
二、如何解決跨域的訪問(wèn)
當(dāng)我們?cè)诂F(xiàn)實(shí)當(dā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. 添加白名單
添加允許訪問(wèn)的白名單,凡是出現(xiàn)在白名單的域名都可以訪問(wèn)后端接口。
# 添加 CORS 配置# 1. 設(shè)置白名單CORS_ORIGIN_WHITELIST = ( ’127.0.0.1:8080’, ’localhost:8080’, ’http://192.168.10.50:8080’, # 凡是出現(xiàn)在白名單中的域名,都可以訪問(wèn)后端接口)# 2. 設(shè)置 CORS CookieCORS_ALLOW_CREDENTIALS = True # 指明在跨域訪問(wèn)中,后端是否支持對(duì)cookie的操作
到此這篇關(guān)于Django 通過(guò)設(shè)置CORS解決跨域問(wèn)題的文章就介紹到這了,更多相關(guān)Django CORS跨域內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解JSP 內(nèi)置對(duì)象request常見(jiàn)用法2. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理3. html小技巧之td,div標(biāo)簽里內(nèi)容不換行4. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單5. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題6. 利用CSS制作3D動(dòng)畫(huà)7. IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案8. JSP的Cookie在登錄中的使用9. 測(cè)試模式 - XSL教程 - 510. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁(yè)的方法
