首页 > 解决方案 > 模板文字中的 JavaScript 换行编码

问题描述

在模板文字中,换行符可以用\n或用字符串中的文字换行符来表示。根据文档和从打印到控制台,这两种方法没有区别。

但是,在使用 Axios 时,我\n在 POST 的数据字段中发送了一个字符串。服务器错误地解释了这个请求并合并了字符串中的行。\n当我在字符串中使用文字换行符更改所有字符时,服务器按预期解释了请求。这里发生了什么?两种方法的编码有区别吗?

// this works
    await axios.post(`${myURL}/`, {
            password: `${username}@${server}
            ${password}`
        });

// this doesn't work
    await axios.post(`${myURL}/`, {
            password: `${username}@${server}\n${password}`
        });

标签: javascriptencodingaxiosline-breakstemplate-literals

解决方案


两种方法的编码有区别吗?

是的,您的第一个代码还包括服务器和密码之间的一些非换行符空格:

            ${password}`
^^^^^^^^^^^^

为了使它们相同,请在 之后添加空格\n,例如:

await axios.post(`${myURL}/`, {
        password: `${username}@${server}\n             ${password}`
    });

(您可能只需要在 \n 之后增加一个空格即可正确解析它 - 尝试一下)


推荐阅读