Javascript 如何发送接线员&&引用;通过Ajax查询?
我目前正在使用以下ajax函数发送ajax查询Javascript 如何发送接线员&&引用;通过Ajax查询?,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我目前正在使用以下ajax函数发送ajax查询 $.ajax({ type: "POST", url: "insert.php", data: dataString, cache: false, success: function (htmltwo) {}, error: function (htmltwo) {} }); 问题是当我发送包含运算符“&”的文本时,运算符右侧的项目被删除。下面是我的数据字符串 var dataString = 'i
$.ajax({
type: "POST",
url: "insert.php",
data: dataString,
cache: false,
success: function (htmltwo) {},
error: function (htmltwo) {}
});
问题是当我发送包含运算符“&”的文本时,运算符右侧的项目被删除。下面是我的数据字符串
var dataString = 'id=' + id + '&dateoccur=' + dateoccur + '&timeoc=' +
timeoc + '&hitype=' + hitype + '&hid=' + hid;
例如,如果hid是包含“EEEE&LLL”的文本,则在服务器端接收时,&右侧的项目将被删除。因此,在服务器端,将接收“EEEE”。我假设ajax能够识别这一点,因为它是dataString变量的一部分。如何解决这个问题?您可以在Javascript中使用&
等字符编码,然后在服务器上对其进行解码
var hidValue=“EEEE&lll”;
var hidValueEncoded=encodeURIComponent(hidValue);
console.log(hidValueEncoded)代码>我总是建议使用对象而不是字符串。然后jQuery将自动正确编码所有内容
var dataString = {
id: id,
dateoccur: dateoccur,
timeoc: timeoc,
hitype: hitype,
hid: hid
};
它也更具可读性,IMHO
但是如果您真的想自己构建字符串,请使用Nisarg Shah的答案中的encodeURIComponent
。您应该对所有参数执行此操作,除非您确定它们不包含任何特殊字符。您是否尝试过数据:{id:id,dateoccurrent:dateoccurrent,etc:etc}
让jQuery根据需要对值进行编码?(这也会处理包含等号的值等)呵呵,这是一个通过尝试做库已经做过的事情来让自己的生活更艰难的例子。同样的问题会转移到逗号(,)吗?jQuery会将对象转换为key=value对。如果值字符串包含任何可能导致键值对无效的内容,它将对其进行转义。显然不是。谢谢,它可以与逗号和&运算符配合使用。谢谢。我没有考虑这个答案,因为我必须改变很多代码。格式数据:{id:id,dateoccurrent:dateoccurrent,etc:etc}对我有效,正如上面nnnn所评论的那样