在Windows中的Firefox不一致的行结束行为

我们有一个真正的奇怪的问题,当我们做一个职位,行结束是\r\n ,但是当我们拉的值使用javascript,它只是\n 。 这是造成问题的原因,因为对于我们的系统来说,一个创build将会做一个正常的表单发布,而一个更新将会从表单中提取值来创build一个ajax请求。 后来,我们在给定的字段上进行string比较,并且看到\r在那里或不在那里的这个奇怪的组合。

IE处理这个罚款(总是\r\n ),窗口上的FF将提交\r\n ,并在JavaScript将只报告\n 。 什么是真正的FREAKIN STRANGE,但是在linux上,firefox和chrome都会以\r\n ,而document.getElementById('text-area-id').value总是只显示\n

这是HTTP规范的一些尘土飞扬的angular落或类似的东西? 浏览器是否实现了这一点,以便Windows服务器不会死? 有没有办法绕过它,然后消毒每一个领域? 我所期望的是JS和HTTP POST都是以相同的方式运行的,并且在系统所在的系统上使用系统默认值。

\r显然是DOM中的一个非法字符,这就是为什么你不能从脚本中看到它。 当您设置textarea的值时,Firefox将平台换行符转换为\n 。 另一方面,提交表单时认为它需要使用HTTP换行标准,这显然是\r\n 。 所以在发送表单之前将其全部转换。