0

无论我在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>');

          }

        });     

}

有什么建议么?

4

2 回答 2

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>');

      }
于 2013-09-05T22:21:05.513 回答
0

从 AJAX 的角度来看,成功/失败取决于收到的请求的 HTTP 响应。200 响应是成功的。因此,即使您的 PHP 脚本发出类似 的消息Epic fail,除非您还修改标头以返回某种错误标头(即 4XX 或 5XX 响应代码),否则您将始终使用成功处理程序。

于 2013-09-05T22:32:39.087 回答