Django cors 标头和服务器错误

Posted

技术标签:

【中文标题】Django cors 标头和服务器错误【英文标题】:Django cors headers and server error 【发布时间】:2015-09-25 11:31:59 【问题描述】:

我正在尝试使用 django-cors-headers 将 COR 添加到我的服务器,但是当我加载页面时,我在服务器上收到此错误。

ImproperlyConfigured: Error importing module corsheaders.middleware.CorsMiddlewaredjango.middleware.common: "No module named CorsMiddlewaredjango.middleware.common"

我已经使用 pip 安装了 cors-header 应用程序:

pip install django-cors-headers

而我的 settings.py 文件就是这样配置的:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'social.apps.django_app.default',
    'corsheaders',
    'dashboard',
)
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware'
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
CORS_ORIGIN_ALLOW_ALL = True

我使用的是 python 2.7 版本。

【问题讨论】:

尊敬的 Google 员工,您可能发现这篇文章是因为另一个问题:大约 500 个错误发生在 CORS 中间件之前,因此它没有机会添加 CORS 标头。如果响应状态码是 500,这可能是问题所在,CORS 可能工作正常。 【参考方案1】:

您在MIDDLEWARE_CLASSES 中的'corsheaders.middleware.CorsMiddleware' 之后缺少一个逗号。

添加一个。


您的问题是由 Python 连接字符串 'corsheaders.middleware.CorsMiddleware''django.middleware.common.CommonMiddleware' 并因此尝试从 corsheaders.middleware.CorsMiddlewaredjango.middleware.common' 导入 commonMiddleware 引起的。

【讨论】:

谢谢。这是一个我找不到的错字。再次感谢您的帮助。 @Thomas Orozco 你能帮我处理一下ImportError: Module "django.middleware.common" does not define a "CorsMiddleware" attribute/class

以上是关于Django cors 标头和服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

跨域资源共享错误:预检响应不允许标头

Django CORS 标头白名单不起作用

尽管标头正确,但 CORS Access-Control-Allow-Origin

更改商店的 URL 时,ExtJS 5 应用程序 + Django 休息框架 CORS 错误

即使在发送 CORS 标头后从浏览器发送请求到播放服务器时也出现 CORS 错误

如何将 CORS 标头设置为内部服务器错误响应?