您好我正在以更清晰的方式重写我的问题。我有一个像这样的javascript数组:
var values=new Array('this is my "name"',encodeURIComponent('me&you&there'),encodeURIComponent('"£$%&/'),'0');
var jsonval=JSON.stringify(values);
$.ajax({
type:'post',
url:'dosomething.php',
data:'action=getdata&myvalues='+jsonval
});
我必须使用encodeURIComponent与ajax一起发布的原因。 在php方面我有这个:
$ myvals = json_decode($ _ POST [ 'myvalues'],TRUE);
解码对象失败。 $ _POST ['myvalues']的回声就像这样:
{"1":"this is my "name"","2":"me&you&there","3":""£$%&/","4":"0"}
这似乎不是一个有效的json对象,因为它有“”“,双引号内部。任何人都知道如何避免这个问题? 感谢
答案 0 :(得分:0)
只是一个猜测,但是会在\
工作的所有特殊字符旁边转出双引号吗?
var values=new Array('this is my "name"',encodeURIComponent('me&you&there'),encodeURIComponent('\"£$%&/'),'0');
var jsonval=JSON.stringify(values);
$.ajax({
type:'post',
url:'dosomething.php',
data:'action=getdata&myvalues='+jsonval
});