Django CORS 跨域支持
最编程
2024-10-17 06:57:32
...
服务端安装跨域组件
pip install django-cors-headers
添加子应用,settings/dev.py,代码:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders', # cors跨域子应用
'home', # apps已经在上面加入到python的系统导包路径列表了,这里还是出现背景颜色,原因是python虽然找到home,pycharm不知道。所以可以鼠标右键,设置apps为mark as source root
]
注册CorsMiddleware中间件【必须写在第一个位置】,settings/dev.py,代码:
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # cors跨域的中间件
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
添加客户端访问服务端的白名单,设置允许哪些客户端客户端跨域访问服务端,settings/dev.py,代码:
# CORS的配置信息:
# 方案1:
# CORS_ORIGIN_WHITELIST = (
# 'http://www.leshen.cn:3000',
# )
# CORS_ALLOW_CREDENTIALS = False # 不允许ajax跨域请求时携带cookie
# 方案2:
CORS_ALLOW_ALL_ORIGINS = True
推荐阅读
-
Django CORS 跨域支持
-
更好的方式在Flask中配置跨域Cors
-
如何使用 Nginx 设置服务器以解决跨域访问被CORS策略阻止的问题
-
Nginx 实践 IV(CORS 跨域)
-
http]2、http 请求头 Origin 属性、跨域 CORS、同源、nginx 反向代理、预检查请求
-
[HTTP完整笔记] ????又是跨域?一篇文章清楚地解释了跨源资源共享(cors)
-
同源策略和 CORS 跨域
-
[HTTPS] 跨域资源共享 CORS 解析 - [转自:阮一峰的博客 http://www.ruanyifeng.com/blog/2016/04/cors.html]
-
Spring Cloud Gateway CORS 跨域方案
-
完美解决 Iframe 高度自适应问题(良好的兼容性和跨域支持)--同一域时,Iframe 高度自适应