国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺談django rest jwt vue 跨域問題

2020-02-15 23:23:08
字體:
供稿:網(wǎng)友

django rest framework 使用 router 注冊url時,訪問接口 包302錯誤 可能是因為請求url 寫法有問題,

如請求 /api/login/ 報302 ,需要去掉后面的反斜杠,正確寫法 /api/login 請求跨域:

跨域:

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

同源:

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

流程:

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

解決方法:

安裝django-cors-headers

 pip install django-cors-headers

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í)有所幫助,也希望大家多多支持武林站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 张北县| 黑龙江省| 景德镇市| 子长县| 通榆县| 贵阳市| 和政县| 南部县| 博湖县| 彩票| 南京市| 平阳县| 全椒县| 樟树市| 辽源市| 阿图什市| 怀宁县| 娄底市| 连江县| 易门县| 桓仁| 新巴尔虎左旗| 九台市| 周宁县| 沈丘县| 舟曲县| 新蔡县| 佳木斯市| 和龙市| 建昌县| 土默特左旗| 密山市| 怀安县| 湘乡市| 当阳市| 邢台县| 启东市| 鄯善县| 藁城市| 蛟河市| 双柏县|