先後端分離的模式下,後端使用Django RestFramework,前端使用uni-app來進行APP的開發。
前端代碼:
html
Django後端跨域配置
settings.py配置文件中添加:
INSTALLED_APPS = [前端
'corsheaders',
]django
中間件中添加後端
'corsheaders.middleware.CorsMiddleware', # 注意順序 必定是在common中間件的前面
MIDDLEWARE = [跨域
# 'accounts.MyCsrfMiddleware.CORSMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', # 注意順序 必定是在common中間件的前面 'django.middleware.common.CommonMiddleware',
]
settings.py最末尾添加:安全
CORS_ORIGIN_ALLOW_ALL = True 容許攜帶cookie: CORS_ALLOW_CREDENTIALS = True
測試跨域訪問是否成功的視圖函數cookie
`def test(request): return JsonResponse({"status": 0, "message": "This is Django Message!"}) ` rom django.contrib import admin
URLsession
from django.urls import path from django.conf.urls import url, include urlpatterns = [ # test ok url(r'test/', views.test), ]
測試,在Hbuilder中啓動前端項目,同時後端項目也啓動
app
問題:
緣由
請求頭的問題
cors
最簡單的方式,uni-app中的header不加由於跨域是由後端來控制的,後端能夠設置容許哪個域名來與它進行通訊,django後端默認是不容許跨域的,處於安全性的考慮,可是若是須要先後端進行通訊,好比前端是aaaa.com域名,後端是bb.com域名的狀況下,能夠在後端進行跨域請求的相關配置(如上)。
【我的理解,歡迎留言】
參考:O