java - 捕获 Ajax 表单提交中的服务器端错误

标签 java jquery ajax

我正在使用 Java 应用程序,并且我从模态窗口提交 ajax 表单。 我希望代码根据服务器端处理结果在模式中加载成功或错误页面。以下代码仅适用于成功场景。

            $.ajax({
                type: "POST",
                url: action,
                data: params,
                success: function() {
                    $("#p_content").load("/test.jsp?id=12345");
                }
            });

我对 ajax 相当陌生,但据我了解,在上面的脚本中添加“error:”部分是不够的,它不会检测我的 servlet 代码中的错误。有什么方法可以从这个函数内部读取请求参数吗?或者也许我可以用别的东西?请帮忙!

谢谢, 娜塔莎

最佳答案

这是一个用 php 完成的示例。希望有用。

<html><!-- This is index.php -->
    <head>
        <script src="js/jquery.js" type="text/javascript"></script><!-- link to jQuery -->
        <script language="javascript"> 
        $(document).ready(function () {
            $('input#send').click(function(){
                /* Empty div#error and div#result incase they contain info from the last submission */
                $('#error').empty('');
                $('#result').empty('');
                /* Client-side validation */
                var name = $("input#name").val();
                var age = $("input#age").val();
                if (name==''){
                    alert('Insert your name.');
                }
                else if (age==''){
                    alert('Insert your age.');
                } else { 
                    var params = 'name=' + name + '&age=' + age;   
                    $.ajax({        
                         url:'b.php',        
                         type:'post',                 
                         dataType:'html',            
                         data:params,
                         cache: false,            
                         success:data     
                         }); 
                    function data (html) {
                        var $html = $( html ); // create DOM elements in a jQuery object
                        /* Return errors from 'b.php' */
                        $html.filter('#err').appendTo("#error");
                        /* Return valid Post */
                        $html.filter('#res').appendTo("#result");
                        /* Clear name input */
                        $('input#name').val('');
                        /* Clear age input */
                        $('input#age').val('');
                    }
                }
            }); 
        }); 
        </script>
        <style type='text/css'>
            #error{
                color:maroon;
                font-weight:bold;
            }
            #result{
                color:green;
                font-weight:bold;
            }
        </style>
    </head>
    <body>
        <div id="error"></div><!-- View Errors -->
        <div id="result"></div><!-- View valid Post -->
        <input type='text' name='name' id="name" value='' /><br/ >
        <input type='text' name='age' id="age" value='' /><br/ >
        <input type='submit' name='send' id="send" value='Send' />
    </body>
</html>
<小时/>
<?php /* This is b.php */
if(($_POST['name']=='')||($_POST['age']=='')){
    $error = '<div id="err">Error: Fill in ALL fields.</div>';
} elseif(is_numeric($_POST['name'])){
    $error = '<div id="err">Error: Name should NOT contain numbers.</div>';
} elseif(!is_numeric($_POST['age'])){
    $error = '<div id="err">Error: Age should ONLY contain numbers.</div>';
} else{
    $result = '<div id="res">Hi '.$_POST['name'].', you are '.$_POST['age'].' years old.</div>';
}
echo $error;
echo $result;
?>

关于java - 捕获 Ajax 表单提交中的服务器端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121563/

相关文章:

jquery - 响应式主题 : Keep "text" fixed in the picture (html, css)

javascript - jQuery 追加当前 div

javascript - 在 f :ajax listener is invoked 之前和之后执行 JavaScript

javascript - 使用 jQuery 和 AJAX 调用 PHP 类方法并获取返回值

java - 移除标题栏使整个应用程序背景看起来是黑色的

java - 在 MongoDB 中查询唯一性,如果唯一则插入

javascript - Safari 上的 jQuery css 背景图像在重新访问时再次下载图像

java - NLP 始终将情绪返回为 -1

java - CXF Web 服务客户端忽略 ssl 配置 http-conf :tlsClientParameters

javascript - Ajax 成功和错误函数未在 jquery 中正确调用