【发布时间】:2015-02-14 14:01:16
【问题描述】:
我使用此代码提交表单
var form = $("#some-form");
form.attr("action", url);
form.attr("method", "post");
form.attr('target', '_blank');
form.submit();
问题是发送的请求有Content-Type: application/x-www-form-urlencoded,它(如here所述)将\n形式的文本区域中的字符编码为%0D%0A,在服务器端解码为\r\n,造成很多麻烦。
我希望服务器接收\n,所以我需要另一个内容类型。
所以,问题是:
- 我应该使用什么内容类型?
- 我应该如何更改我的 javascirpt 以使用该内容类型?
编辑
我试过enctype="multipart/form-data",但它以同样的方式编码换行符。
【问题讨论】:
-
唯一的其他内容类型是 multipart/form-data 但这是用于发布文件的。
-
为什么需要在服务器上将换行符编码为\n?
-
系统的一些其他组件不接受
\r\n。即使不是这种情况,当前的行为也很糟糕,因为传输组件 (HTTP) 限制了最终用户的表达能力:用户无法将“foo\rbar\r\n”插入到表单中,以便服务器接收到准确的价值。
标签: javascript jquery forms http content-type