我已經複製了在本地主機上運行的簡單Django forms example。當您點擊提交按鈕時,基本的聯繫表單示例應該提交POST請求。Chrome不在本地主機上發送POST請求,Firefox正常工作
我在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中,表單得到驗證,因爲它應該。
我試過用本地主機上的其他POST表單,並得到了相同的結果。
我知道Chrome for Mac有它的怪癖,但究竟是怎麼回事?
謝謝。雖然:(i)我在表單上遇到了不涉及文件上傳的問題,(ii)表單在Chrome中一直適用於locahost,這似乎是一件新事物。我只是想解決如何從Mac OS的命令行啓動Chrome ......感嘆 – AP257
我的評論與文件上傳無關。如果您是通過'file://'URI訪問網頁,而不是通過'http://'URI訪問網頁,則每個文件都被視爲自己的域。之前你不會看到這個的原因是,這種行爲僅在2月24日的開發者頻道更新中啓用。 – jamessan
哦,我明白了。不,我使用的是http:// localhost:8080。現在這種行爲已經消失了。離奇!不管怎麼說,還是要謝謝你。 – AP257