Python 跨来源访问问题-django 2.1.7

Python 跨来源访问问题-django 2.1.7,python,django,cross-domain,Python,Django,Cross Domain,我已经通过了所有的SO链接,重新安装了django和django cors头文件,并跟随到了T,但是我们得到了 飞行前错误不允许交叉原点 Django版本2.1.7 settings.py的相关部分 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'djang

我已经通过了所有的SO链接,重新安装了django和django cors头文件,并跟随到了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

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',
]
中间件=[

“corsheaders.middleware.CorsMiddleware”,这是一个问题,因为给定的Django包是针对Djangov2.2> 这里您使用的是2.1,因此它不支持它


您需要手动从HttpResponse传递头文件

问题可能在前端。在进行API调用时,它必须设置正确的头文件值。感谢您的建议,但我们已经包含了“crossDomain:true”在ajax请求中..除了我经历过的每个SO线程之外,将责任完全放在服务器生成的响应头上感谢您的建议,但我已经尝试过:(…因为我看到它没有任何区别,所以我将它放回我共享的代码片段中的位置。