2011-08-13 181 views
1

我正在JQuery中使用ajax函数从PHP脚本中返回一些具有json_encode函数的值。返回的数据似乎充满了斜杠,引号和\ r \ n。我明白,一定有什么东西出现错误与stripslashes或magic_quotes(已打开),但似乎无法设法得到一个干净的输出Jquery AJAX PHP数据返回

+5

任何机会,你可以添加一些代码?会帮助你很多,试图帮助你 – ManseUK

+0

JSON充满了引号,并且需要大量的内容转义,所以它可能是干净的,只是你的处理已经关闭了。 JSON.org,您可以使用jsonlint.com等工具验证JSON。 –

+0

请给我们代码。 –

回答

3

请确保从jQuery的ajax调用,你告诉它期望json响应。这听起来像你正在返回明文,并试图手动解析它。

$.ajax({ 
    url: "myscript.php", 
    dataType: "json", 
    success: function(data){ 
    console.log(data); //this line only works with chrome (stock) or FireFox (with FireBug plugin) 
    } 
}); 

该代码将在控制台回声(如果你没有铬或FF与萤火,去得到他们中的一个:P)编码输出的JSON。记住,当你从PHP输出时,你应该做的就是:

header('Content-type: application/json'); 
echo json_encode($myAssociativeArrayOfData); 
exit; //make sure nothing else happens to output something 

你不需要使用任何特殊的格式或斜线。只要确保json代码以正确的头文件输出为json代码,并且jQuery的ajax函数应该将其转换为您。结果将是成功函数中的数据变量,即您的json对象(php数组)。因此,如果你在PHP中传入这样的数组:array('foo'=>'bar'),那么在jQuery中的成功函数中,可以输入:alert(data.foo);并获得一个对话框,说“酒吧”。