Php发送JSON响应但$ .getJSON没有收到它

时间:2015-08-20 19:00:33

标签: javascript php jquery ajax json

我从我的PHP代码返回的JSON响应有问题。

PHP在后端

case 'deleteMySale':
    $id = $_GET['product_id'];
    $dataNoSer = "you want to delete sale where id= " . $id . "?";
    $data =  json_encode($dataNoSer, true);
    echo $data;
    break;

调用PHP的前端的JavaScript

$('.deleteProduct').click(function () {
    var id = $(this).data('id');
    $.getJSON("http://localhost/myProject/deleteMySale?product_id=20", function (data) {
        console.log("success");
    })
            .done(function () {
                console.log("second success");
            })
            .fail(function () {
                console.log("error");
            })
            .always(function () {
                console.log("complete");
            });
})

响应

error
complete

单击按钮时会调用PHP函数,但我一直在控制台中出错。

为什么jQuery没有收到JSON数据? 我已经阅读了类似的问题和他们的解决方案,但我知道我哪里出错了。

1 个答案:

答案 0 :(得分:0)

这是一个格式错误的JSON响应。问题是您已经将一个扁平字符串传递给编码函数。 encode函数不对字符串进行编码,它对数组和对象进行编码。让我们把它变成一个数组,这样我们就可以得到一个真正的回应。

$ dataNoSer = array("问题" =>"你想删除销售,其中id ="。$ id。"?");

此外,如有必要,请在发送回复之前修改标题,以确保其在回复中具有application/json内容类型。

header('Content-Type: application/json');

像这样访问它。

console.log(data.question);