使用 HTTP POST 发送多行文本 [重复]
Posted
技术标签:
【中文标题】使用 HTTP POST 发送多行文本 [重复]【英文标题】:Sending multiline text using HTTP POST [duplicate] 【发布时间】:2018-03-14 10:32:24 【问题描述】:从this answer 看来,通过 HTTP POST 方法发送的数据必须存在于表单元素中。我希望能够使用 POST 发送 <textarea>
element 的内容,但我认为 <textarea>
不能成为表单的一部分。我可以使用 javascript 将 textarea 内容复制到(最好是隐藏的)表单的文本输入字段,然后发布。但这样换行符就会丢失。缺少插入特殊字符来标记换行符,是否有另一种方法可以在 POST 数据中保留换行符?
【问题讨论】:
其实 你能分享你的代码吗? 抱歉——我在某处读到了<textarea>
的解释,这对我来说暗示它不能成为表单的一部分。我站得更正了。 @fonjeekay 的代码在我手中运行良好。
【参考方案1】:
其实<textarea>
可以是<form>
的一部分:
<form action="/action_page.php" id="usrform">
Name: <input type="text" name="usrname">
<input type="submit">
</form>
<textarea name="comment" form="usrform">Enter text here...</textarea>
【讨论】:
如果你把<textarea>
inside <form>
...
@PeterB — 它有一个 form
属性代替(虽然这是一个奇怪的选择)
谢谢,我现在知道了,以前从未听说过。仍然落后于 html5。快速搜索它还揭示了代码示例的来源:w3schools.com/tags/att_textarea_form.asp
工作正常。对不起我的困惑。我想我尝试了很多变体,但错过了这个。谢谢。【参考方案2】:
Textarea 值很容易包含在表单提交中,只要它具有“名称”属性。 您也可以在提交前通过serializing 将值包含在表单数据中。这只是您可以附加到的一串表单数据。
换行符始终保留在 textarea 值中,您只需要确保在显示该值时呈现它们,如 here 所示。
【讨论】:
以上是关于使用 HTTP POST 发送多行文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
从本机 Java Rest 客户端发送 Http Post [重复]