axios 访问XMLHttpRequest已被Django中的CORS策略阻止

fnatzsnv  于 12个月前  发布在  iOS
关注(0)|答案(1)|浏览(150)

我已经部署了一个Web应用程序,并为其创建了一个子域作为其后端的URL(例如,主URL是domain.com,子域是api.domain.com),两者都是https。
当我从前端请求我在Django Rest Framework中创建的API时,我得到错误:
对XMLHttpRequest的访问已被CORS策略阻止:所请求的资源上不存在“控制-允许-起源”标头
下面的代码是我的settings.py的一部分。

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
    ...
    'corsheaders',
]

MIDDLEWARE = [
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    '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',
]

字符串
我将感谢你给我解决办法。

ddarikpa

ddarikpa1#

在django-cors-headers文档中:
CorsMiddleware应该尽可能放在高处,尤其是在任何可以生成响应的中间件之前,比如Django的CommonMiddleware或者Whitenoise的WhiteNoiseMiddleware。如果不是在之前,它将无法将CORS头添加到这些响应中。

相关问题