首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨源请求阻止Django并作出反应

跨源请求阻止Django并作出反应
EN

Stack Overflow用户
提问于 2020-12-23 08:33:58
回答 2查看 508关注 0票数 0

我安装了pip install django-cors-headers仍然不能工作

添加到settings.py文件中

代码语言:javascript
复制
INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

Django Rest框架

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-28 10:50:04

我在项目解决方案中也有同样的问题,就是

  1. 将corsheaders.middleware.CorsMiddleware放在顶部 中间件=“corsheaders.medileware.Cors中间件”,'django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware',..
  2. ALLOWED_HOSTS = '*‘
  3. 在settings.py底部添加 CORS_ORIGIN_ALLOW_ALL =真

根据文档的说法,CorsMiddleware应该尽可能高,特别是在任何能够产生响应的中间件之前,比如Django的CommonMiddleware或Whitenoise的WhiteNoiseMiddleware。如果不是以前,它将无法将CORS头添加到这些响应中。

另外,如果您使用的是CORS_REPLACE_HTTPS_REFERER,那么它应该放在Django的CsrfViewMiddleware之前(请参阅下面的更多内容)。

票数 2
EN

Stack Overflow用户

发布于 2020-12-23 14:10:59

通常,对于这样的错误,您需要用django-cors-headers更新django-cors-headers

代码语言:javascript
复制
# update backend/server/server/settings.py
# ...
INSTALLED_APPS = [
    #...
    'corsheaders', # add it here
    #...
]

# define which origins are allowed
CORS_ALLOWED_ORIGINS = [
    "http://localhost:3000",
    "http://127.0.0.1:3000"
]

# add to middleware
MIDDLEWARE = [
    #...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    #...
]

有时,您还需要设置ALLOWED_HOSTS=["127.0.0.1"]或使用其他地址(您也可以尝试使用"*",但只用于调试)。

您可以查看我的文章中的详细信息:对Django REST后端进行基于令牌的身份验证

还请尝试在web浏览器中使用已清除的缓存运行测试。

如果这没有帮助,请提供更多关于您的项目设置的详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65421233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档