使用 javascript 在 ajax 中发布数据时缺少字符

mit*_*tnk 0 javascript ajax post xmlhttprequest

我有一个文本区域:

<textarea id="my_text"></textarea>
Run Code Online (Sandbox Code Playgroud)

并在 javascript 中有一些 ajax 代码,如下所示:

var xmlhttp = new XMLHttpRequest();
var my_text = document.getElementById("my_text").value;
xmlhttp.open("POST", ".", true);
xmlhttp.send("my_text=" + my_text + "&foo=1");
Run Code Online (Sandbox Code Playgroud)

当我用 string 填充 textareaabc +1 +2 +3并运行 JS 代码时。我在服务器端得到的“my_text”的值是abc 1 2 3

如何更改 JS 代码以abc +1 +2 +3在服务器端获取正确的字符串。

Rob*_*b W 5

用于encodeURIComponent(my_text)准备要提交的文本。此函数应始终用于参数,以正确转义字符。您已经经历过代码崩溃的情况。
当用户在字符串中使用 a 时,会出现另一个不转义字符的可怕结果&,从而有效地创建了一个额外的参数。

xmlhttp.send("my_text=" + encodeURIComponent(my_text) + "&foo=1");
Run Code Online (Sandbox Code Playgroud)