果然又报错了 2023-08-18 12:56 采纳率: 50%
浏览 5
已结题

关于#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

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-18 15:18
    关注

    【以下回答由 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",这样每次点击注册按钮时就不会再出现错误了。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月19日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误