1

前后端分离的模式下,后端使用Django RestFramework,前端使用uni-app来进行APP的开发。
前端代码:
image.png

Django后端跨域配置
settings.py配置文件中添加:
INSTALLED_APPS = [

'corsheaders',

]

中间件中添加

'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



测试跨域访问是否成功的视图函数

`def test(request):
    return JsonResponse({"status": 0, "message": "This is Django Message!"})
`

rom django.contrib import admin

URL

from django.urls import path
from django.conf.urls import url, include

urlpatterns = [

    # test ok
    url(r'test/', views.test),

]

测试,在Hbuilder中启动前端项目,同时后端项目也启动
image.png

问题:
image.png
原因
请求头的问题
image.png

    最简单的方式,uni-app中的header不加因为跨域是由后端来控制的,后端可以设置允许哪一个域名来与它进行通信,django后端默认是不允许跨域的,处于安全性的考虑,但是如果需要前后端进行通信,比如前端是aaaa.com域名,后端是bb.com域名的情况下,可以在后端进行跨域请求的相关配置(如上)。
    

【个人理解,欢迎留言】

参考:O


星梦天国
86 声望4 粉丝

只知道要努力,好像没有什么非做不可的事 温水煮青蛙 草稿纸进化成图纸