我正在使用.net多线控制。我使用jQuery从该控件获取数据:
$('.detailsCommentContent').val()
此时我警告该值可见新线。
然后我发出请求www.example.com?commentContent= + "$('.detailsCommentContent').val()"
在http请求中,此时没有newLines标志。
我该怎么做才能保留这些新的符号?
感谢您的帮助
答案 0 :(得分:3)
请求POST
请求更改某些内容的数据,而不是GET
。通过这种方式,您可以发布您喜欢的任何数据而无需对其进行编码,最重要的是:仅仅抓住您的网页的机器人不会对您的网站造成任何损害。另请参阅http://thedailywtf.com/Articles/The_Spider_of_Doom.aspx
答案 1 :(得分:1)
您将需要对值进行URL编码:
var url = "http://www.yourpage.com?commentContent=" +
encodeURIComponent($('.detailsCommentContent').val());
答案 2 :(得分:1)
<Textarea>
元素存储&#34;新行&#34;基于主机操作系统,有时甚至只是浏览器。
在windows,mac和linux之间,可以是\r\n
,\n
或\r
。
\r
是&#34;回车&#34;,\n
是&#34;换行&#34;。 (C ++人员将熟悉crlf
)
这些字符组成一个新行。
问题在于:
当您获得textarea的值时,在存储到变量时,它总是保留行标记。您可以尝试替换换行符,或按@ Pointy的答案对其进行编码。
这个问题以一些形式存在,但它们都很难找到,因为我们有很多不同的名字用于换行。
基本上,浏览器出于某种原因讨厌你,你需要隐藏你正在做的事情,因为它试图真的很聪明。
答案 3 :(得分:0)
对值使用escape()函数,或使用POST而不是GET。