国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

簡單了解django處理跨域請求最佳解決方案

瀏覽:56日期:2024-10-19 10:52:23

一、什么是跨域請求

跨域:

簡單來說就是 A 網(wǎng)站的 javascript 代碼試圖訪問 B 網(wǎng)站,包括提交內(nèi)容和獲取內(nèi)容。這顯然是不安全的。為此,瀏覽器的鼻祖:網(wǎng)景(Netscape)公司提出了優(yōu)秀的解決方案:著名的瀏覽器同源策略。現(xiàn)在所有支持JavaScript的瀏覽器都會使用這個策略。

同源:域名、協(xié)議、端口均相同的網(wǎng)站即為同源。

流程:

當(dāng)一個瀏覽器的兩個Tab頁分別打開百度和谷歌頁面時,百度發(fā)起一個腳本執(zhí)行,此時瀏覽器會檢查該腳本屬于哪個頁面。即檢查是否同源。只有和百度同源的腳本才會被執(zhí)行。若非同源,在請求數(shù)據(jù)時,瀏覽器會在控制臺報一個異常。提示拒絕訪問。

ps: 以上關(guān)于同源策略解釋參考自百度百科-同源策略。

二、關(guān)于解決跨域請求

解決跨域請求從前端到后端有N種解決方式。我不在此一一列舉。只分享一個目前看來對django處理跨域請求的最佳方案。

1.安裝django-cors-headers

pip install django-cors-headers

2.配置settings.py文件

INSTALLED_APPS = [ ... ’corsheaders’, ... ] MIDDLEWARE_CLASSES = ( ... ’corsheaders.middleware.CorsMiddleware’, ’django.middleware.common.CommonMiddleware’, # 注意順序 ...)#跨域增加忽略CORS_ALLOW_CREDENTIALS = TrueCORS_ORIGIN_ALLOW_ALL = TrueCORS_ORIGIN_WHITELIST = ( ’*’) CORS_ALLOW_METHODS = ( ’DELETE’, ’GET’, ’OPTIONS’, ’PATCH’, ’POST’, ’PUT’, ’VIEW’,) CORS_ALLOW_HEADERS = ( ’XMLHttpRequest’, ’X_FILENAME’, ’accept-encoding’, ’authorization’, ’content-type’, ’dnt’, ’origin’, ’user-agent’, ’x-csrftoken’, ’x-requested-with’,)

通過以上配置,即可完美解決django跨域請求處理。唯一需要注意的就是cors-headers的中間件CorsMiddleware在注冊時必須放在django-common中間件的前一個。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 正镶白旗| 河曲县| 孟州市| 扶沟县| 阳原县| 泸水县| 常山县| 常熟市| 中江县| 云阳县| 乐山市| 日照市| 祁东县| 北宁市| 苗栗县| 肇庆市| 左权县| 石家庄市| 合作市| 民权县| 武宣县| 巨鹿县| 高清| 沁阳市| 六枝特区| 静安区| 山东省| 台南县| 平利县| 和林格尔县| 甘德县| 吉林省| 桃园市| 温泉县| 双柏县| 通州市| 凤山县| 舒城县| 巨鹿县| 巩义市| 吴堡县|