我们遇到了一个非常奇怪的问题,当我们发帖时,行结尾为\r\n
,但是当我们使用javascript提取值时,它只会获得\n
。这导致了问题,因为对于我们的系统,创建将执行正常的表单发布,并且更新将从表单中提取值以构建ajax请求。之后,我们正在对给定的字段进行字符串比较,并且看到\r
之间存在或不存在这种奇怪的混合。
IE处理这个问题(总是\r\n
),Windows上的FF将使用\r\n
提交,而javascript只会报告\n
。什么是真正的FREAKIN STRANGE虽然是在linux上,firefox和chrome都将发布\r\n
,而document.getElementById('text-area-id').value
只会显示\n
。
这是HTTP规范的一些尘土飞扬的角落还是类似的东西?浏览器是否实现了这一点,以便Windows服务器不会死?有什么方法可以解决它,然后对每个领域进行消毒吗?我所期望的是JS和HTTP POST的行为方式相同,并且在它们恰好在的任何系统上使用系统默认值。
答案 0 :(得分:0)
\r
显然是DOM中的非法字符,这就是为什么你不会从脚本中看到它。设置textarea的值时,Firefox会将平台换行符转换为\n
。另一方面,提交表单时认为需要使用HTTP换行标准,显然是\r\n
。所以它在发送表单之前将它们全部转换。