更改DNS后出现CSRF验证错误

时间:2013-01-09 00:15:05

标签: django

我已成功使用Django几天了。我在Amazon Web Service机器上运行我的django应用程序。 我被分配了一些看起来像这样的任意DNS名称:http://ec2-XXX.XXX.XXX.XXX.compute-1.amazonaws.com。 我的Django应用程序正在查找我的模型和几个模板视图。

昨晚,我出去从register.com购买了一个真正的DNS名称,现在该DNS名称指向我的django应用程序。 但是,由于我进行了更改,当我提交django表单时,我收到以下CSRF错误:

禁止(403) CSRF验证失败。请求中止。

我尝试在浏览器中清除Cookie,但这没有帮助。我甚至尝试过以前从未尝试过的其他机器。但仍然是同样的问题。 为什么为此IP地址分配新的DNS名称会导致此CSRF错误?我该如何摆脱它?

我的表格:

<form action="/forgotUserName2" method="post">{% csrf_token %}

<label for="id_email">E-mail:</label></th><td><input id="id_email" type="text" class="required" name="email" maxlength="75" />
<input type="submit" value="Submit" />
</form>

1 个答案:

答案 0 :(得分:0)

尝试将settings.py文件中的CSRF_COOKIE_DOMAIN设置设置为新域名。

另外,您可以将操作命名为/forgotUserName2。 python中的方法和函数通常如下所示:forgot_user_name_2 ie; snake_cased。此外,django中的URL应始终以尾部斜杠结尾:/forgot_user_name_2/