Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jquery.serialize会将LF更改为CRLF?_Javascript_Jquery_Eol - Fatal编程技术网

Javascript 为什么jquery.serialize会将LF更改为CRLF?

Javascript 为什么jquery.serialize会将LF更改为CRLF?,javascript,jquery,eol,Javascript,Jquery,Eol,我正在尝试发布此表单: <form id="the-form" enctype="multipart/form-data" > <textarea class="form-control" name="list" id="list"></textarea> </form> 脚本的调试显示JSON.stringify($('#list').val()) 返回“line1\nline2\nline3” 而$(“#表单”).serialize(

我正在尝试发布此表单:

<form id="the-form" enctype="multipart/form-data" >
    <textarea class="form-control" name="list" id="list"></textarea>
</form>
脚本的调试显示
JSON.stringify($('#list').val())

返回
“line1\nline2\nline3”

$(“#表单”).serialize()返回
wordlist=line1%0D%0Aline2%0D%0Aline3

那么为什么jquery.serialize会将
\n
编码为
%0D%0A
?是否有一种方法可以使用
%0A
EOL序列化返回字符串?

这是设计的,请参阅:

序列化文本时,根据application/x-www-form-urlencoded规范将所有换行符编码为CRLF对

其中:

换行符表示为“CR-LF”对(即,`%0D%0A')

--

是否有方法使序列化返回字符串具有%0A EOL


除了在序列化后手动删除
%0D
,没有其他功能。

如georg所述,这是预期的功能

您可以在序列化字符串中替换
%0D%0A
的实例,如下所示:

var formVars = $('#the-form').serialize().replace(/%0D%0A/g, '%0A');

您因此遇到的实际问题是什么?多年来一直使用
serialize()
,从未遇到断线问题。为什么:(它是这样编程的)只会替换第一个实例
var formVars = $('#the-form').serialize().replace(/%0D%0A/g, '%0A');