javascript - Windows 中 Firefox 的行结束行为不一致

标签 javascript windows http firefox newline

我们遇到了一个非常奇怪的问题,当我们发帖时,行尾是 \r\n,但是当我们使用 javascript 提取值时,它只是 \n 。这会导致问题,因为对于我们的系统来说,创建将执行正常的表单发布,而更新将从表单中提取值以构建 ajax 请求。稍后,我们在给定字段上进行字符串比较,并看到 \r 存在或不存在之间的这种奇怪混合。

IE 处理得很好(总是 \r\n),Windows 上的 FF 将使用 \r\n 提交,而在 javascript 中只会报告 \n.真正奇怪的是,在 Linux 上,firefox 和 chrome 都将使用 \r\n 发布,并执行 document.getElementById('text-area-id').value 将始终只显示 \n

这是 HTTP 规范的某个尘土飞扬的 Angular 落还是类似的东西?浏览器是否实现了这一点,以便 Windows 服务器不会死机?有什么办法解决它,然后对每个字段进行 sanitizer ?我希望 JS 和 HTTP POST 的行为方式相同,并在它们碰巧所在的任何系统上使用系统默认值。

最佳答案

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

关于javascript - Windows 中 Firefox 的行结束行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798887/

相关文章:

javascript - 在 Node.js 中解析 XML 文件

javascript - 在 Javascript 中使用 if 语句来确定 google 电子表格中的单元格是否包含内容

javascript - 如何在字符串中搜索第一次出现的 ":/",然后搜索找到的子字符串(包括 ":/")的所有其他出现?

http - RESTful 服务应如何公开可变资源的只读属性?

http - fiddler :如何禁用覆盖 header 主机

javascript - 更改事件以检查任何表单元素上的更改

javascript - 如何计算Javascript中创建的对象的数量?

Python 多处理模块,Windows,通过创建新进程生成新的控制台窗口

c# - 如何做 RegAsm 使其涵盖 32 位和 64 位?

HTTPS 上的 Wordpress 前端,HTTP 上的后端