Django Rest Framework提供了corsheaders模块解决跨域问题

安装模块

pip3.9 install django-cors-headers

注册应用

# 注册 corsheaders 模块

INSTALLED_APPS = [
    ...
    'corsheaders', 
]

配置中间件


MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware', # 配置中间件,位置必须在CommonMiddleware之前
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

配置参数

# 如果是DEBUG模式
if DEBUG:
    # 允许所有跨域行为
    CORS_ORIGIN_ALLOW_ALL = True

else:
    # 允许跨域的白名单
    # 域名不要以http:// 或者https:// 开头
    CORS_ORIGIN_WHITE_LIST = (
        'www.testApi.com' #信任的站点
    )