2010-03-02 51 views
1

我已經複製了在本地主機上運行的簡單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有它的怪癖,但究竟是怎麼回事?

回答

0

這可能是由Chrome對待每個文件造成的:// URL爲different domain。嘗試使用--allow-file-access-from-files選項啓動Chrome,看看是否有幫助。

更新:您必須關閉所有現有的Chrome實例,並使用該選項啓動一個新的實例來注意任何區別。

+0

謝謝。雖然:(i)我在表單上遇到了不涉及文件上傳的問題,(ii)表單在Chrome中一直適用於locahost,這似乎是一件新事物。我只是想解決如何從Mac OS的命令行啓動Chrome ......感嘆 – AP257

+0

我的評論與文件上傳無關。如果您是通過'file://'URI訪問網頁,而不是通過'http://'URI訪問網頁,則每個文件都被視爲自己的域。之前你不會看到這個的原因是,這種行爲僅在2月24日的開發者頻道更新中啓用。 – jamessan

+0

哦,我明白了。不,我使用的是http:// localhost:8080。現在這種行爲已經消失了。離奇!不管怎麼說,還是要謝謝你。 – AP257

相關問題