我使用ajax通过AJAX调用将数据发送到set.php:
$.ajax({
url: "ajax/set.php",
dataType: "html",
type: 'POST',
data: "data=" + data,
success: function (result) {
alert(result);
}
});
在发送AJAX调用之前,我使用JavaScript来alert()
数据,数据是:
JeCH+2CJZvAbH51zhvgKfg==
但是当我使用$_POST["data"]
时,数据是:
JeCH 2CJZvAbH51zhvgKfg==
哪些显示的替换用空格替换,我该如何解决这个问题?
答案 0 :(得分:4)
使用$.ajax
时,请使用对象而不是带data:
选项的字符串。然后jQuery将对其进行正确的URL编码:
data: { data: data },
如果您确实想传递字符串,则应对可能包含特殊字符的任何值使用encodeURIComponent
:
data: 'data=' + encodeURIComponent(data),
答案 1 :(得分:1)
看一下the jQuery docs,您可以将对象传递给data
,而不是手动构建的实际查询。尝试:
$.ajax({
url: "ajax/set.php",
dataType: "html",
type: 'POST',
data: {
data: data
},
success: function (result) {
alert(result);
}
});
答案 2 :(得分:0)
我认为您需要使用其网址编码值+
对%2B
进行编码。
为此,请使用replace
方法。
var data = data.replace(/\+/g, "%2B");