使用 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>

【讨论】:

如果你把&lt;textarea&gt; inside &lt;form&gt;... @PeterB — 它有一个 form 属性代替(虽然这是一个奇怪的选择) 谢谢,我现在知道了,以前从未听说过。仍然落后于 html5。快速搜索它还揭示了代码示例的来源:w3schools.com/tags/att_textarea_form.asp 工作正常。对不起我的困惑。我想我尝试了很多变体,但错过了这个。谢谢。【参考方案2】:

Textarea 值很容易包含在表单提交中,只要它具有“名称”属性。 您也可以在提交前通过serializing 将值包含在表单数据中。这只是您可以附加到的一串表单数据。

换行符始终保留在 textarea 值中,您只需要确保在显示该值时呈现它们,如 here 所示。

【讨论】:

以上是关于使用 HTTP POST 发送多行文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

通过arduino向PHP文件发送POST请求[重复]

从本机 Java Rest 客户端发送 Http Post [重复]

scrapy 发post请求

postman使用动态token发post请求小结

为啥http请求从客户端发送两次到服务器(OPTION和POST)[重复]

go 1秒钟可以发多少http请求