我的成功/错误处理未按预期工作。在这个例子中,我的php按预期运行,但是,处理的意图失败了。假设我在数据库中查找用户名...如果我找到了用户名,我将返回$ajax_result['success'] = 'success';
,但如果我找不到用户名,我将不返回任何内容。成功调用工作正常,但错误调用未触发。
我得到的firebug中的错误是TypeError: response is null
,因此我设置的错误警告不会触发。
在没有实际返回$ajax_result['success'] = 'whatever';
当处理按预期进行时,从PHP返回的示例会是这样的:
$ajax_result['success'] = 'success'; // add success info
echo json_encode($ajax_result); // return result array to ajax
对于'错误'我只是回来了:
echo json_encode($ajax_result); // which is null in this case
ajax:
var showInfo = function() {
$('#show-user').on('click', function () {
var $form = $(this).closest('form');
$.ajax({
type: 'post',
url: '/spc_admin/process/p_delete_user_show.php',
data: $form.serialize(),
dataType : 'json'
}).done(function (response) {
if (response.success == 'success') {
alert('success');
}
else
{
alert('error');
}
});
});
}
答案 0 :(得分:1)
你不能json_encode
一个空值,最简单,最干净的方法可能是让success
成为一个布尔并将其设置为true
或{{1}取决于它是否成功(这通常是大多数用户期望响应的'成功'或'结果'参数,而不是字符串)。
false
答案 1 :(得分:0)
试试这个:
if (!response.success) {
alert('error');
}
else
{
alert('success');
}