2010-06-04 71 views

回答

4

使用javascript在按下按鈕時發送ajax請求並取消表單提交。表單提交將始終是名稱/值對。 XForms可以發送自定義的數據,但如果這是供公衆使用的話,那麼在使用大多數瀏覽器支持XForms之前需要幾年時間,如果有的話。

+1

如果我使用AJAX進行POST,那麼瀏覽器將不會自動處理HTTP響應,而且我希望它能夠。換句話說,我正在尋找一個不依賴於JavaScript的問題的答案,而僅僅是HTML。 – 2010-06-04 02:38:45

7

HTTP規範說明POST請求可以包含任意數據體。

這是正確的。反過來,這些數據的格式有幾種規格。在HTML格式的情況下,最常用的是application/x-www-form-urlencoded,其次是multipart/form-data。您可以通過HTML <form>元素的enctype屬性進行設置。另請參閱HTML規範的17.13.4 Form Content Types一章。


一個HTML表格元素可以張貼到一個URL,並且可以包含輸入元件,但這些輸入元件得到變成了查詢字符串。

這的確是application/x-www-form-urlencoded的工作原理。請注意,這個查詢字符串實際上代表了整個HTTP請求體!所以請求主體絕對不是空的,因爲你似乎認爲。


我怎樣才能得到一個形式沿數據,它在其提交按鈕發送HTTP POST請求的身體被壓也發?

因此實際上已經這樣做了。如果您intented發送表單本身的HTML DOM樹表示,在之前的語句有點暗示的副本,那麼你就可以做到這一點的JavaScript的一點幫助如下:

<form onsubmit="this.source.value=this.outerHTML"> 
    ... 
    <input type="hidden" name="source" /> 
    <input type="submit" /> 
</form> 

整個HTML表單的DOM樹表示形式爲字符串格式,可用作請求參數,名稱爲source

相關問題