Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax不工作。当servlet出现错误时,它会重定向到另一个页面,并显示错误消息_Javascript_Ajax_Jsp_Servlets - Fatal编程技术网

Javascript Ajax不工作。当servlet出现错误时,它会重定向到另一个页面,并显示错误消息

Javascript Ajax不工作。当servlet出现错误时,它会重定向到另一个页面,并显示错误消息,javascript,ajax,jsp,servlets,Javascript,Ajax,Jsp,Servlets,在success内部,它将检查servlet是否返回错误。如果它返回错误,那么 它应该这样做。但实际上,它是重定向到另一个页面并在那里打印错误 Servlet代码: $(document).ready(function() { $("#formotp").on("submit", function(event) { event.preventDefault(); $("#formotp&qu

在success内部,它将检查servlet是否返回错误。如果它返回错误,那么 它应该这样做。但实际上,它是重定向到另一个页面并在那里打印错误

Servlet代码:

$(document).ready(function() {
    $("#formotp").on("submit", function(event) {
            event.preventDefault();
            $("#formotp").hide();
            $("#spinregister").show();
            var f = $(this).serialize();
            $.ajax({
                url : "OtpRegistrationSrevlet",
                type : 'POST',
                data : f,
                success : function(data, textStatus, jqXHR) {
                    $("#spinregister").hide();
                    $("#errordivreg").load(location.href + " #errordivreg");
    

                if (data.trim() === 'error') {
                        $("#formotp").show();
                    } else {
                        window.location = "Home.jsp";
                    }
                },
                error : function(jqXHR, textStatus, errorThrown) {
                    $("#formotp").show();
                    $("#spinregister").hide();
                }
            });
    });
});
}

我在这里面临问题。无论何时otp不正确,它都会导致打印错误。在ajax中,它会检查接收到的数据是否等于错误,然后它会再次显示表单,但我会将此错误打印在新的空白页上


data
中有什么?“error”-我从servlet else发送的消息阻塞。您是否
alert(data)
并检查其值是否正确?我觉得你的代码还可以
$(document).ready(function() {
    $("#formotp").on("submit", function(event) {
            event.preventDefault();
            $("#formotp").hide();
            $("#spinregister").show();
            var f = $(this).serialize();
            $.ajax({
                url : "OtpRegistrationSrevlet",
                type : 'POST',
                data : f,
                success : function(data, textStatus, jqXHR) {
                    $("#spinregister").hide();
                    $("#errordivreg").load(location.href + " #errordivreg");
    

                if (data.trim() === 'error') {
                        $("#formotp").show();
                    } else {
                        window.location = "Home.jsp";
                    }
                },
                error : function(jqXHR, textStatus, errorThrown) {
                    $("#formotp").show();
                    $("#spinregister").hide();
                }
            });
    });
});
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
        
            PrintWriter out = response.getWriter();
            HttpSession s = request.getSession();
            int otp = (Integer) s.getAttribute("userotp");
            int enteredOtp = Integer.parseInt((request.getParameter("otp").trim()));
            if (otp == enteredOtp) {
                
            } else {

        out.println("error");// error message
        return;
    }