我已经完全复制了简单的Django forms example,在localhost上运行。单击“提交”按钮时,基本联系表单示例应提交POST请求。
我在Mac Snow Leopard上运行Chrome,每当我提交表单时,页面只会以空表单重新加载:我可以从runserver输出中看到它没有发送POST - 而是发送GET请求。
如果我在Mac Snow Leopard上的Firefox中打开同一页面并提交表单,我可以看到它正在发送POST请求(应该是这样)。
查看Chrome中的来源,表单肯定是method="post"
。
<form action="/contact/" method="post">
<p><label for="id_subject">Subject:</label> <input id="id_subject" type="text" name="subject" maxlength="100" /></p>
<p><label for="id_message">Message:</label> <input type="text" name="message" id="id_message" /></p>
<p><label for="id_sender">Sender:</label> <input type="text" name="sender" id="id_sender" /></p>
<p><label for="id_cc_myself">Cc myself:</label> <input type="checkbox" name="cc_myself" id="id_cc_myself" /></p>
<input type="submit" value="Submit" />
</form>
使用POST表单的外部网站似乎在Chrome中正常运行。
此外,如果我填写表单不正确,在Chrome中页面只会像以前一样通过GET请求重新加载;在Firefox中,表单得到了验证,应该如此。
我已尝试在localhost上使用其他POST表单并获得相同的结果。
我知道Chrome for Mac有它的怪癖,但到底是怎么回事?
答案 0 :(得分:0)
这可能是因为Chrome会将每个文件:// URL视为different domain。尝试使用--allow-file-access-from-files
选项启动Chrome,看看是否有帮助。
更新:您必须关闭所有现有的Chrome实例并使用该选项启动新实例,以发现任何差异。