Django+uni-app实现数据通信中的请求跨域♀?♀前后端分离的模式下,后端使用Django RestFramework,前端使用uni-app来进行APP的开发。前端代码: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 adminURLfrom django.urls import pathfrom django.conf.urls import url, includeurlpatterns = [ # test ok url(r'test/', views.test),]测试,在Hbuilder中启动前端项目,同时后端项目也启动问题:原因请求头的问题 最简单的方式,uni-app中的header不加因为跨域是由后端来控制的,后端可以设置允许哪一个域名来与它进行通信,django后端默认是不允许跨域的,处于安全性的考虑,但是如果需要前后端进行通信,比如前端是aaaa.com域名,后端是bb.com域名的情况下,可以在后端进行跨域请求的相关配置(如上)。 【个人理解,欢迎留言】参考:O
