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

相关文章
相关标签/搜索