我从我的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数据? 我已经阅读了类似的问题和他们的解决方案,但我知道我哪里出错了。
答案 0 :(得分:0)
这是一个格式错误的JSON响应。问题是您已经将一个扁平字符串传递给编码函数。 encode函数不对字符串进行编码,它对数组和对象进行编码。让我们把它变成一个数组,这样我们就可以得到一个真正的回应。
$ dataNoSer = array("问题" =>"你想删除销售,其中id ="。$ id。"?");
此外,如有必要,请在发送回复之前修改标题,以确保其在回复中具有application/json
内容类型。
header('Content-Type: application/json');
像这样访问它。
console.log(data.question);