我使用 Jquery 中的 ajax 函数通过 json_encode 函数从 PHP 脚本返回一些值。返回的数据似乎充满了斜杠、引号和\r\n。我知道 stripslashes 或 magic_quotes (已打开)一定出了问题,但似乎无法获得干净的输出
最佳答案
确保在来自 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)
}
});
该代码将在您的控制台中回显(如果您没有带有 FireBug 的 chrome 或 FF,请获取其中之一:P)json 编码输出。请记住,当您从 PHP 输出时,您应该做的就是:
header('Content-type: application/json');
echo json_encode( $myAssociativeArrayOfData );
exit; //make sure nothing else happens to output something
您不需要使用任何特殊格式或斜杠。只需确保 json 代码以具有正确 header 的 json 代码形式输出,并且 jQuery 的 ajax 函数应该会为您转换它。结果将是 success 函数中的数据变量,即您的 json 对象(php 数组)。因此,如果您在 PHP 中传入这样的数组: array('foo'=>'bar') ,那么在 jquery 中的 success 函数中,您可以键入:alert( data.foo );并出现一个显示“bar”的对话框。
关于php - Jquery AJAX PHP数据返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050048/