关于#ajax#的问题:使用Ajax获取form表单并提交到servlet中,点击Ajax总是进入error(语言-java)

使用Ajax获取form表单并提交到servlet中时,点击Ajax总是进入error


<h1>注&nbsp&nbsp&nbsp册</h1>
    <form name="form1" id="form1" action="" onsubmit="return false">
        <label>
            <input class="login-box1" type="text" name="username" id="username" placeholder="用户名">
            <input class="login-box2" type="password" name="password1" id="password1" placeholder="设置密码">
            <input class="login-box3" type="password" name="password2" id="password2" placeholder="再次确认">
            <input class="login" type="button" value="注册" onclick="login()">
        </label>
    </form>

function login(){
    var username=$('#username').val();
    var password1=$('#password1').val();
    var password2=$('#password2').val();
    $.ajax({
        type:"POST",
        dataType:"txt",
        url:"servlet",
        data:{
            "username":username,"password1":password1,"password2":password2
            //$("#form1").serialize(),
        },
        success:function (){
            alert("111");
        },
        error:function (){
            alert("222");   //每次运行点击注册都是弹出222
        }
    })
}

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Objects;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/servlet")
public class servlet extends HttpServlet{
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("username");
        String password1 =request.getParameter("password1");
        String password2 =request.getParameter("password2");
        if(Objects.equals(name, "123")){
            //response.sendRedirect("test.html");
            String a="haha";
            request.setAttribute("flag1",a);
            request.getRequestDispatcher("index.jsp").forward(request,response);
        }else{
            response.sendRedirect("test1.html");
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

img

ajax改了几次格式还是不行,不知道是哪里错了≧ ﹏ ≦

运行配置:tomcat,jQuery

【以下回答由 GPT 生成】

问题的核心是每次点击注册按钮时,Ajax请求会出现错误。

错误的原因是Ajax请求中的dataType属性被设置为"txt",而正确的值应该是"text"。

要解决这个问题,只需将dataType属性的值改为"text"即可。

修改后的示例代码如下:

function login(){
    var username=$('#username').val();
    var password1=$('#password1').val();
    var password2=$('#password2').val();
    $.ajax({
        type:"POST",
        dataType:"text", // 修改dataType属性为"text"
        url:"servlet",
        data:{
            "username":username,"password1":password1,"password2":password2
            //$("#form1").serialize(),
        },
        success:function (){
            alert("111");
        },
        error:function (){
            alert("222");   //每次运行点击注册都是弹出222
        }
    })
}

修改后的代码中,Ajax请求的dataType属性被正确设置为"text",这样每次点击注册按钮时就不会再出现错误了。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

看下网络请求