当您通过 javascript 拉取文本时,如何在文本区域中保持文本 \r\n 格式

How to keep text \r\n formatting on a textarea when you pull the text via javascript

长话短说,我有一个文本区域,我想使用适当的换行符保留格式。我通过以下 javascript 调用获取文本区域的值。

var letterText = document.getElementById("cnl-lettertext").value;

之后,我通过 Ajax 调用发送它,然后 api 将其保存到数据库中。出于某种原因,当我设置它时,我似乎无法让它在变量中保留 \r\n 个字符或换行符。

我试过在我的 css 上设置 white-space: pre 但这似乎不起作用。我也不想只使用 .replace,因为这会破坏其他功能。

ajax 通话:

$.ajax({
    url : url, //url is built dynamically for a rest api.
    timeout : 5000,
    dataType : "json",
    statusCode : {  },
    success : function(data) {
                            
    
    }
});

当您向带有换行符的 URL 发送请求时,浏览器将删除那些不 URL 兼容的换行符。它们需要编码。

您可以使用 encodeURIComponent 手动执行此操作,但由于您使用的是 jQuery,请充分利用它,并使用 data 选项以正确的方式传递查询参数.它们将被 jQuery:

正确编码
$.ajax({
    url : 'https://www.example.com/endpoint', // don't add query params here
    timeout : 5000,
    dataType : "json",
    data: { // Add them here, they will be encoded automatically
      letterText: letterText,
      // ...
    },
    statusCode : {  },
    success : function(data) {}
});