簡體   English   中英

使用HTML表單時如何在HTTP請求正文中發送數據?

[英]How to send data in the HTTP request body when using an HTML form?

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

HTML form元素可以POST到URL並且可以包含input元素,但這些input元素將變為查詢字符串。

我如何獲得一個form以便在按下提交按鈕時發送的HTTP POST請求正文中的數據?

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

那是對的。 然而,該數據的格式又有幾種規格。 對於HTML表單,最常用的是application/x-www-form-urlencoded ,后跟multipart/form-data 您可以通過HTML <form>元素的enctype屬性進行設置。 另請參見第17.13.4節HTML規范的表單內容類型


HTML表單元素可以POST到URL並且可以包含輸入元素,但這些輸入元素將變為查詢字符串。

這確實是application/x-www-form-urlencoded工作方式。 請注意,此查詢字符串實際上代表整個HTTP請求正文! 因此,您似乎認為請求正文絕對不是空的。


我如何獲得一個表單,以便在按下提交按鈕時發送的HTTP POST請求正文中的數據?

因此它實際上已經這樣做了。 如果您打算發送表單本身的HTML DOM樹表示的副本,如前面的語句中稍微暗示的那樣,那么您可以通過JavaScript的一點幫助實現以下目的:

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM