[英]json data char '&' disturbs ajax post request data
我正在使用JSON.stringify
生成一个json字符串,我的json字符串将像
jsonstring=[{"step1":[{"nm":"John & joe"},{"title":"Hello & hai"}]},{"step2":[{"desc":"1234"},{"usr":"abc@xyz.com"}]}]`
我用\\&
转义&
并将此json字符串通过ajax发送到服务器。
$.ajax({
url:"test-usr-data.php",
type:"post",
data:"usrdata="+jsonstring,
success: function(response){
console.log("data is "+response);
},
complete:function (jqXHR, textStatus){
console.log("ajax Request completed"+textStatus);
}
});
问题在于json字符串中的&
char,即使我正在转义&
到\\&
数据也没有发布到服务器,但是ajax请求状态成功。
我尝试从json字符串中删除&
,效果很好,并且数据已正确发布到服务器。
任何一个可以帮助我在正确的方式来逃避&
在JSON字符串。
谁告诉您通过加反斜杠来转义URL的作品?
jQuery会照顾好它,只要这样做
data: {usrdata: jsonstring},
仅供参考:您也可以使用encodeURIComponent
data: "usrdata=" + encodeURIComponent(jsonstring),
假定0x26(38)是该字符的ASCII代码,则对&
进行URI编码的方式为%26
。
但是请不要使用data: { key: value, ... }
将参数传递到$.ajax
,并让jQuery为您完成所有操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.