下面的代码刚刚停止工作,虽然自上次工作以来我甚至都没有触及该部分文件。
$.post(PATH_PRODUCTS_AJAX_URL, att, function(data) {
if(data.proper)
{
current_step = data.step;
$('#product_container').append('<div class="product_content">' + data.content + '</div>');
$('#product_container .product_content:last').animate({'left' : '-=460px'}, 200, 'swing');
}
else
{
alert('Not proper.');
}
}, 'json');
我的调试过程如下:
我检查了网址和输入数据 - 它们都很好。我使用 data.proper 变量来确保数据正常;如果数据没有以正确的方式处理,我应该得到“不合适”的警告框 - 但现在我没有。我也试过if语句之外的随机警报框,但根本没有任何事情发生。
但是如果删除JSON参数,我会得到“Not proper”框。通过提醒 data 变量,我还可以看到输出数据都很好。
我检查了涉及的文件,它们都是UTF-8编码的。
我真的不知道接下来该做什么。任何帮助表示赞赏。
编辑:(示例数据)
products.php:
$return['proper'] = true;
$return['step'] = 1;
$return['content'] = 'Hello';
$json = json_encode($return);
echo $json;
响应(请注意,只有在排除JSON参数时才会返回):
{"proper":true,"step":1,"content":"Hello"}
答案 0 :(得分:0)
您可以尝试从简写.post()
更改为.ajax()
来调用,以便您显示错误:
$.ajax({
type: "POST",
url: PATH_PRODUCTS_AJAX_URL,
data: att,
dataType: "json",
success: function(data) {
if (data.proper) {
current_step = data.step;
$('#product_container').append('<div class="product_content">' + data.content + '</div>');
$('#product_container .product_content:last').animate({'left': '-=460px'}, 200, 'swing');
}
else {
alert('Not proper.');
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Response text: "+XMLHttpRequest.responseText);
alert("Status returned: "+textStatus);
alert("Error thrown: "+errorThrown);
}
});