Php json数据字符'&';干扰ajax请求后数据
我正在使用Php json数据字符'&';干扰ajax请求后数据,php,javascript,jquery,json,Php,Javascript,Jquery,Json,我正在使用json.stringify生成一个json字符串,我的json字符串如下 jsonstring=[{"step1":[{"nm":"John & joe"},{"title":"Hello & hai"}]},{"step2":[{"desc":"1234"},{"usr":"abc@xyz.com"}]}]` 我正在用\&转义&,并通过ajax将此json字符串发送到服务器 $.ajax({ url:"test-usr-data.php", type:"post
json.stringify
生成一个json字符串,我的json字符串如下
jsonstring=[{"step1":[{"nm":"John & joe"},{"title":"Hello & hai"}]},{"step2":[{"desc":"1234"},{"usr":"abc@xyz.com"}]}]`
我正在用\&
转义&
,并通过ajax将此json字符串发送到服务器
$.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字符串中的&
字符,即使我将&
转义为\&
数据未发布到服务器,但ajax请求状态为成功
我尝试从json字符串中删除&
,它工作正常,数据正确地发布到服务器
有谁能帮我正确地用json字符串转义
&
。谁告诉过你,URL中的转义是通过在前面加反斜杠来实现的
jQuery会处理好的,就这么做吧
data: {usrdata: jsonstring},
仅供参考:您也可以使用encodeURIComponent
data: "usrdata=" + encodeURIComponent(jsonstring),
谁告诉过你URL中的转义是通过预加反斜杠来实现的 jQuery会处理好的,就这么做吧
data: {usrdata: jsonstring},
仅供参考:您也可以使用encodeURIComponent
data: "usrdata=" + encodeURIComponent(jsonstring),
假设0x26(38)是该字符的ASCII码,则对
&
进行URI编码的方法为%26
但是不要使用
数据:{key:value,…}
将参数传递给$.ajax
的方法,让jQuery为您完成这一切。URI编码&
的方法是%26
,因为0x26(38)是该字符的ASCII代码
但是不要使用
data:{key:value,…}
的方式将参数传递给$.ajax
,让jQuery为您完成这一切。为什么人们会投票支持这条评论?是的,我试过了;但这不起作用,这是评论建议的&代码>那是错误的。在POST数据中对&
进行编码的正确方法是%26
。为什么人们会投票支持该评论?是的,我试过了;但这不起作用,这是评论建议的&代码>那是错误的。在POST数据中编码&
的正确方法是%26
。