通过django-cors-headers解决Django跨域问题

通过django-cors-headers解决Django跨域问题

1. 安装

pip install django-cors-headers

2. 在settings.py中做配置

1. 在INSTALLED_APPS中注册app

INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]

2. 在MIDDLEWARE中注册中间件

MIDDLEWARE = [  
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

注意CorsMiddleware严格按照顺序要求放置在CommonMiddleware之前

3. 在settings.py中加入配置

1. 方式一:允许所有的跨域请求

CORS_ORIGIN_ALLOW_ALL = True

2. 方式二:允许来自指定地址的跨域请求

CORS_ORIGIN_WHITELIST = [
    "https://example.com",
    "https://sub.example.com",
    "http://localhost:8080",
    "http://127.0.0.1:9000"
]

eg: 还有个允许使用正则表达式来匹配的规则配置

CORS_ORIGIN_REGEX_WHITELIST = [
    r"^https://\w+\.example\.com$",
]

3. 配置允许跨域的访问方式

可以不进行该步配置,默认允许所有跨域访问方式。

CORS_ALLOW_METHODS = [
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
]

:

点我~更多详情请参考官方文档

你可能感兴趣的:(Django,django,python)