首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django CORS CSRF_TRUSTED_ORIGINS不工作

Django CORS CSRF_TRUSTED_ORIGINS不工作
EN

Stack Overflow用户
提问于 2022-04-18 13:19:07
回答 1查看 1.3K关注 0票数 2

我正在从事一个DRF (Django项目),其中我的后端django rest托管在服务器上,我的ReactJS前端也托管在同一台服务器上。我确保按照我在ff文档中所读到的所有步骤:

我已经添加了corsheader INSTALLED_APPS,我在settings.py中的中间件是:

代码语言:javascript
复制
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    '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',
]

我在settings.py中的CORS设置是:

代码语言:javascript
复制
CORS_ALLOW_ALL_ORIGINS=False

CSRF_TRUSTED_ORIGINS = [
    "https://samplefrontend.tech",
]

CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]

CORS_ALLOW_HEADERS = [
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
]

但是,当我尝试使用本地PC (而不是来自前端服务器)的Postman执行一些请求时,例如get令牌,rest返回刷新和访问令牌。对于其他HTTP请求,这也是正确的,我可以使用postman自由地执行这些请求并获得响应。

我需要的是只有来自前端应用程序(reactjs)的请求才能被接受。有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-19 02:12:54

文档中说,要将cors中间件放在列表的最前面。

代码语言:javascript
复制
MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
     ---
     all other middleware
]

我把我的保龄球设置为-

代码语言:javascript
复制
CORS_ORIGIN_WHITELIST = [
    "http://localhost:3000",
    "http://localhost:5000",
    "http://192.168.3.27:3000"
]

这个很好用。

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

https://stackoverflow.com/questions/71912333

复制
相关文章

相似问题

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