Django+uni-app實現數據通訊中的請求跨域

先後端分離的模式下,後端使用Django RestFramework,前端使用uni-app來進行APP的開發。
前端代碼:
image.pnghtml

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中啓動前端項目,同時後端項目也啓動
image.pngapp

問題:
image.png
緣由
請求頭的問題
image.pngcors

最簡單的方式,uni-app中的header不加由於跨域是由後端來控制的,後端能夠設置容許哪個域名來與它進行通訊,django後端默認是不容許跨域的,處於安全性的考慮,可是若是須要先後端進行通訊,好比前端是aaaa.com域名,後端是bb.com域名的狀況下,能夠在後端進行跨域請求的相關配置(如上)。

【我的理解,歡迎留言】

參考:O

相關文章
相關標籤/搜索