我在索引1的字段中有一个5字段HTML表单,换行符(按Enter键,%0A),其他所有字符都为空。
如果我使用
$.post( "http://myserver.com/page.php", $("#fields").serialize()
然后在page.php调用
echo serialize( $_POST['fields'] );
结果是
a:4:{i:0;s:0:"";i:1;s:1:" ";i:2;s:0:"";i:3;s:0:"";}
请注意,索引1字段中的字符串长度为1。
现在,如果我使用常规html提交表单按钮提交相同的表单,并且在page.php上调用相同的结果
a:4:{i:0;s:0:"";i:1;s:2:" ";i:2;s:0:"";i:3;s:0:"";}
注意索引1字段中的字符串长度现在是2.实验表明,每个换行符似乎增加了一个长度。
这是什么原因以及如何使jquery调用与标准调用匹配?感谢。
答案 0 :(得分:0)
processData(默认值:true) 类型:布尔值 默认情况下,作为对象传入数据选项的数据(技术上,不是字符串)将被处理并转换为查询字符串,适合默认内容类型“application / x-www-form-urlencoded” 。如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false。
答案 1 :(得分:0)
所以修复的代码是
$("#fields").serialize().replace(/\%0A/g, "%0D%0A")