注意: 这是一个完全不同的问题,直到我意识到问题的真正原因。
我目前的问题是我试图从PHP输出一些JSON供jQuery使用。我正在做这个跨域,所以我使用“JSONP”。我已经将问题缩小到我的JSON中有单引号的事实,所以当我使用回调函数输出时,我最终得到太多的单引号。
我尝试在PHP中调用str_replace("'","\'",$value)
,它似乎在我的JSON中输出为\\'
而不是\'
,这显然是jQuery无法读取的(尽管在线JSON验证器说JSON是有效的。
所以我需要知道的是如何在我的字符串中只获得一个斜杠而不是2个斜杠。
答案 0 :(得分:1)
我正在收集的是:
jQuery使用_
作为JSONP请求的回调参数。它会自动附加?_=jQuery<random_numbers>
,基本上告诉服务器在返回时调用这个唯一的函数名。因此,截至最近(在我想说的去年).ajax
负责为您创建回调函数,然后将其“重新路由”到您在{{1}中指定的函数属性。
此外,您的PHP代码正在使用success
,现在它应该使用$_GET['callback']
(以便更好地与jQuery和它发送的内容保持一致)。
“jQuery未被调用”只是jQuery通知你预期的回调没有包含在响应中,并且它正在寻求确保它被调用。
简短回答(我认为)引用$_GET['_']
而不是$_GET['_']
来满足jQuery。
答案 1 :(得分:0)
尝试在PHP中使用它:
echo $_GET['callback'] . '(' . json_encode($your_array_data) . ')';
问候。