无论我在edit_data.php
文件中输入什么内容,我总能获得成功消息。我无法设置错误,或者在这种情况下,成功处理,因为它总是说我的变量是未定义的。
如果所有变量都未定义错误,如何设置错误处理?
function UpdateDB() {
// DEBUG
alert('UPDATED DB!');
//Hide All Alerts
$('.alert').hide();
//Show processing message.
$('#processing_alert').fadeIn(1000);
// Run MySQL Script
$.ajax({
url: 'edit_data.php',
success: function(data, status, error) {
// IF SUCCESSFUL
//Hide All Alerts
$('.alert').hide();
//Show processing message.
$('#databaseS_alert').fadeIn(1000);
$('#generated_msg_placehold').after('<h4>Original Request: ' + $data + '</h4>');
$('#generated_msg_placehold').after('<h4>Status: ' + $status + '</h4>');
$('#generated_msg_placehold').after('<h4>Error: ' + $error + '</h4>');
},
error: function(data, status, error) {
// IF FAILED
//Hide All Alerts
$('.alert').hide();
//Show processing message.
$('#databaseF_alert').fadeIn(1000);
$('#generated_msg_placehold').after('<h4>Original Request: ' + $data + '</h4>');
$('#generated_msg_placehold').after('<h4>Status: ' + $status + '</h4>');
$('#generated_msg_placehold').after('<h4>Error: ' + $error + '</h4>');
}
});
}
有什么建议吗?
答案 0 :(得分:4)
您在Javascript中的变量之前不需要美元符号。这可能就是为什么他们都是未定义的。应该是,
success: function(data, status, error) {
// IF SUCCESSFUL
//Hide All Alerts
$('.alert').hide();
//Show processing message.
$('#databaseS_alert').fadeIn(1000);
$('#generated_msg_placehold').after('<h4>Original Request: ' + data + '</h4>');
$('#generated_msg_placehold').after('<h4>Status: ' + status + '</h4>');
$('#generated_msg_placehold').after('<h4>Error: ' + error + '</h4>');
},
error: function(data, status, error) {
// IF FAILED
//Hide All Alerts
$('.alert').hide();
//Show processing message.
$('#databaseF_alert').fadeIn(1000);
$('#generated_msg_placehold').after('<h4>Original Request: ' + data + '</h4>');
$('#generated_msg_placehold').after('<h4>Status: ' + status + '</h4>');
$('#generated_msg_placehold').after('<h4>Error: ' + error + '</h4>');
}
答案 1 :(得分:0)
AJAX观点的成功/失败基于为请求收到的HTTP响应。 200响应是成功的。因此,即使您的PHP脚本发送了Epic fail
之类的消息,除非您还修改了标题以返回某种错误标题(即4XX或5XX响应代码),否则您将始终使用成功处理程序。