Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json数据字符'&';干扰ajax请求后数据_Php_Javascript_Jquery_Json - Fatal编程技术网

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