Php 为什么用空格替换字符串中的加号
我使用ajax通过对set.php的ajax调用发送数据:Php 为什么用空格替换字符串中的加号,php,jquery,ajax,Php,Jquery,Ajax,我使用ajax通过对set.php的ajax调用发送数据: $.ajax({ url: "ajax/set.php", dataType: "html", type: 'POST', data: "data=" + data, success: function (result) { alert(result); } }); 在发送AJAX调用之前,我使用JavaScript来alert()数据,数据是: JeCH+2CJZvA
$.ajax({
url: "ajax/set.php",
dataType: "html",
type: 'POST',
data: "data=" + data,
success: function (result) {
alert(result);
}
});
在发送AJAX调用之前,我使用JavaScript来alert()
数据,数据是:
JeCH+2CJZvAbH51zhvgKfg==
JeCH 2CJZvAbH51zhvgKfg==
但是当我使用$\u POST[“data”]
时,数据是:
JeCH+2CJZvAbH51zhvgKfg==
JeCH 2CJZvAbH51zhvgKfg==
显示用空格替换的加号,如何解决此问题?我相信您需要使用其URL编码值
+
对其进行编码%2B
为此,请使用replace
方法
var data = data.replace(/\+/g, "%2B");
使用
$.ajax
时,使用对象而不是带有数据:
选项的字符串。然后jQuery将正确地对其进行URL编码:
data: { data: data },
如果确实要传递字符串,则应在可能包含特殊字符的任何值上使用encodeURIComponent
:
data: 'data=' + encodeURIComponent(data),
看一下,您可以将对象传递给数据
,而不是手动生成的实际查询。尝试:
$.ajax({
url: "ajax/set.php",
dataType: "html",
type: 'POST',
data: {
data: data
},
success: function (result) {
alert(result);
}
});
可能重复使用更好的
encodeURIComponent
,以便替换所有特殊字符,而不仅仅是+
。这是非常正确的。我想我的答案是完全专注的。如果有人使用我的答案,你真的应该使用encodeURIComponent
来解释所有特殊字符。不过,我认为其他人的答案更好/更准确。他们中有人为你工作了吗?