美文网首页
CORS-解决Django中跨域问题

CORS-解决Django中跨域问题

作者: 越大大雨天 | 来源:发表于2019-06-22 10:46 被阅读0次

当在Django中进行前后端分离开发时,前端服务器与后端服务器是独立的,也就是不在同一个域名下。这时由浏览器的同源策略,默认不允许不同域间互访数据。为了使前后端服务器能相互访问,可以使用CORS来解决。

安装及配置

1. 安装

pip install django-cors-headers

2. 配置

  • 注册:
INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)
  • 添加中间件:
    将其放在MIDDLEWARE配置第一位
MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    ...
]

3. 白名单设置
CORS_ORIGIN_WHITELIST为授权进行跨站点HTTP请求的来源列表,默认为[]。
需要URI协议+主机名+端口指定。
不指明端口时,将使用默认端口(HTTPS = 443,HTTP = 80)。

# CORS
CORS_ORIGIN_WHITELIST = (
    'https://example.com' ,
    'https://sub.example.com' ,
    'http:// localhost:8080' ,
    'http://127.0.0.1:9000'
)
CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie

4. cookies允许
CORS_ALLOW_CREDENTIALS如果为True,则允许cookie包含在跨站点HTTP请求中。
默认为False。

 CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie

5. 允许的请求方法
不指定CORS_ALLOW_METHODS时默认允许以下方法跨域请求:

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

其他一些设置参考官方文档:https://pypi.org/project/django-cors-headers/

相关文章

网友评论

      本文标题:CORS-解决Django中跨域问题

      本文链接:https://www.haomeiwen.com/subject/bbjmqctx.html