虽然这几乎是这个问题的重复:Parameter with '&' breaking $.ajax request,那里给出的答案并不能帮助我解决问题。原因是,问题和答案都是jQuery(我不明白)。
我需要发送一个带有字符串参数的Ajax调用,该参数有时包含'&'比如“RGR Kabel GmbH& Co. KG”。
例如,我有这个AJAX函数(简化):
function getData()
{
var param = "RGR Kabel GmbH & Co. KG";
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState === 4 && xmlhttp.status === 200)
{
[... do something]
}
};
xmlhttp.open("GET", "../getData.php?q1="+param, true);
xmlhttp.send();
}
'&'在param
变量中打破了AJAX调用。而不是一个参数:
q1 : "RGR Kabel GmbH & Co. KG"
有两个参数:
q1 : "RGR Kabel GmbH "
Co. KG :
使用'&'时是否有可能阻止AJAX调用中断参数内部?
非常感谢任何帮助!
答案 0 :(得分:7)
由于&
用于在URI中分隔查询字符串参数,因此如果要发送包含该字符的数据,则必须在将所有数据添加到URI之前对其进行编码。您可以使用encodeURIComponent()
来实现此目的。
在你的情况下像这样:
xmlhttp.open("GET", "../getData.php?q1="+encodeURIComponent(param), true);