我已经遍历了所有的SO链接,重新安装了django和django-cors-headers,然后跟随this到T,但是我们得到了
不允许飞行前错误飞越原点
Django版本2.1.7
settings.py的相关部分
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',
'uploads.core',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'corsheaders.middleware.CorsPostCsrfMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
答案 0 :(得分:3)
CorsMiddleware应该放置在尽可能高的位置,尤其是在可以生成响应的任何中间件之前,例如Django的CommonMiddleware
或Whitenoise的WhiteNoiseMiddleware
。如果不是以前,它将无法在这些响应中添加CORS标头。
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # <-- should be at the top
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'corsheaders.middleware.CorsPostCsrfMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
答案 1 :(得分:0)
这是一个问题,因为给定的 Django 包适用于 Djangov2.2> 这里你使用的是 2.1,所以它不支持它。
您需要手动从 HttpResponse 传递标头