一尘不染

如何通过AJAX发送“&”(&)字符?

javascript

我想使用POSTJavaScript中的方法发送一些变量和一个字符串。

我从数据库中获取字符串,然后将其发送到PHP页面。我正在使用一个XMLHttpRequest对象。

问题在于该字符串&多次包含该字符$_POST,PHP中的数组将其视为多个键。

我试着更换&\&replace()功能,但它似乎并没有做任何事情。

有人可以帮忙吗?

javascript代码和字符串如下所示:

var wysiwyg = dijit.byId("wysiwyg").get("value");
var wysiwyg_clean = wysiwyg.replace('&','\&');

var poststr = "act=save";

poststr+="&titlu="+frm.value.titlu;
poststr+="&sectiune="+frm.value.sectiune;
poststr+="&wysiwyg="+wysiwyg_clean;
poststr+="&id_text="+frm.value.id_text;

xmlhttp.open("POST","lista_ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(poststr);

字符串是:

 <span class="style2">&quot;Busola&quot;</span>

阅读 259

收藏
2020-05-01

共1个答案

一尘不染

您可以使用encodeURIComponent()。

它将转义URL中不能逐字出现的所有字符:

var wysiwyg_clean = encodeURIComponent(wysiwyg);

在此示例中,&字符&将由转义序列替换,该转义序列%26在URL中有效。

2020-05-01