【发布时间】:2014-03-13 08:38:19
【问题描述】:
我有一个 javascript 文件,它对服务器上的一个 php 文件进行 AJAX 调用,该文件返回 JSON 编码数据。 PHP 文件可以返回成功或失败,具体取决于大约十几个不同的消息,如下所示:
if ( something here ) {
if( something else here ) {
if( more tests here ) {
$response['success'] = 'Successfully did something.';
} else {
$response['success'] = 'Successfully made this work';
}
} else {
$response['error'] = 'Failed to make the donuts.';
}
} else {
$response['error'] = 'I need more information!';
}
echo json_encode($response);
exit;
我在前端有 javascript/jquery,它正在检查响应失败条件并显示警告框并执行一些其他相关操作,具体取决于。
$.post(ajaxurl, data, function(response) {
if( response.hasOwnProperty("success") ) {
if( $(this).is( ":checked" ) ) {
$(this).removeAttr( "checked" );
} else {
$(this).attr( "checked", "true" );
}
alert( response["success"] );
} else {
alert( "Sorry, something went wrong. \nError: " + response["error"] );
}
});
问题是,无论我如何检查成功条件,它总是显示带有 undefined 的 response['error'] 的错误消息我已经尝试测试 typeOf response['success'] != "undefined" 和许多其他方法来查看成功值已设置,但似乎没有任何效果。我收到一个回复,当我 console.log 它看起来像这样:{ "success", "Successfully did something." } 我在阅读消息时做错了什么?
【问题讨论】:
-
做console.log响应(检查你是否得到响应)然后如果(response.success)不做hasOwnProperty它不是必需的。
-
你使用哪个版本的jquery?
-
它是最新版本的 jquery,我收到了回复
-
@dpegasusm:但是你得到了什么响应?
标签: javascript php jquery ajax json