您现在的位置是: 网站首页> 学习笔记> Django Django

django部署到生产环境后报CSRF验证失败异常

2024-01-22 [python] 556人已围观

如题,本地开发时,提交表单一切正常,但部署到生产环境后, 提交表单一直报CSRF验证失败。 排查了以下问题,都是正常的:

1.settings.py

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

2.html文件

<form class="form-inline" action="/chengyu/search" method="post">
                {% csrf_token %}
                <input class="form-control mr-sm-2" type="search" placeholder="输入关键词搜索" name="searchKey" aria-label="Search">
                <button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button>
            </form>

{% csrf_token %}也是添加了的

3.views.py

    def post(self, request):
        search_key = request.POST.get('searchKey', '')
        datas = []
        return render(request=request, template_name='chengyu/search.html', context=locals())

确认以上配置都没问题,经过九九八十一分钟的煎熬,最后终于解决了问题。

解决方案

在settings.py中添加域名配置:

CSRF_TRUSTED_ORIGINS = ['https://hotword.cn',]

完美解决问题

文章评论

暂无评论

添加评论





本栏推荐

站点信息

  • 建站时间:2021-01-01
  • 网站程序:Django 3.1.2
  • 文章统计:49篇
  • 文章评论:27条
  • 统计数据