繁体   English   中英

json数据char'&'干扰ajax发布请求数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM