卑微求解 springmvc 中向前端传输数据的问题

发布于 2022-01-03 01:06:27 字数 2392 浏览 314 评论 6

我在进行数据传输的时候是想获取后台传输的数据然后根据相应的数据进行操作的,可是当使用tomcat运行测试的时候游览器直接在加界面上打印出了数据,并且 状态码 XMLHttpRequest.status=0,状态 XMLHttpRequest.readyState=0,错误信息为 error。

页面为:

首先是我的 service 代码:

@RequestMapping("register")
    public String register(HttpServletRequest request, HttpServletResponse response) throws IOException {
        PrintWriter printWriter = response.getWriter();
        String name = request.getParameter("name");
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        SqlSession openSession = sqlSessionFactory.openSession();
        userUtilInter userUtilInter = openSession.getMapper(userUtilInter.class);
        userBean = userUtilInter.checkUserByName(name);
        jsonObject = new JSONObject();
        System.out.println(userBean);
        if(null != userBean) {
            jsonObject.put("status", 0);
        }else {
            jsonObject.put("status", 1);
        }
        printWriter.print(jsonObject);
        return null;
    }
}

下面是我的 ajax 代码:

 $("#submit").submit(function(){
            $.ajax({
                async:true,
                type: "POST",
                url:"userServiceImpl",
                contentType : "application/x-www-form-urlencoded",
                dataType: "JSON",
                success: function (data){
                    alert(1)
                    console.log("data:" + data)
                    if(data.status==1){
                        console.log(data);
                        alert("註冊成功,請登錄");
                        location.href= "login.jsp";
                    }
                    else{
                        alert("名字已存在,請重試");
                        location.href= "register.jsp";
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    // 状态码
                    console.log(XMLHttpRequest.status);
                    // 状态
                    console.log(XMLHttpRequest.readyState);
                    // 错误信息
                    console.log(textStatus);
                }
            })
    })

请问有哪位大侠能告诉我我的错误在哪里吗?怎么可以解决我这个问题。我先在这里跪谢了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

如此安好 2022-01-08 00:29:18

第一种方式就是加@ResponseBody注解,然后返回实体对象,这种方式你可能会用到fastjson包(如果保存的话)。第二种方式是把返回值类型String改成void,因为返回String的话,spring默认的返回值处理器会以为你返回了一张页面,会尝试去解析成view。不熟悉的话可以去看我的一篇博客<spring-webmvc请求处理流程-返回值处理>

成熟稳重的好男人 2022-01-08 00:11:21

请问有没有可能是我 ajax 请求路径写错了

凯凯我们等你回来 2022-01-07 20:08:48

我现在只是了解我前端 form 表单的 action 是 register,所以我后台应该用 /register(上面应该是我没有改回原来的)。ajax请求是我之前用 servlet 的时候直接写类名就可以了,所以才这么写的。restful 风格我还只是知道,不会用。现在想着还是先把功能实现了。

狠疯拽 2022-01-06 22:48:13

你请求的url:userServiceImpl而你在后台注册的RequestMapping 的地址又是register前后不一致,而且userServiceImpl作为url也不符合restful标准呀。

海之角 2022-01-06 22:37:01

解决了问题,谢谢两位

顾忌 2022-01-05 00:48:23

楼上是正解

 

@RequestMapping("register")
@ResponseBody
public JSONObject register(HttpServletRequest request, HttpServletResponse response) throws IOException {
    PrintWriter printWriter = response.getWriter();
    String name = request.getParameter("name");
    SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
    SqlSession openSession = sqlSessionFactory.openSession();
    userUtilInter userUtilInter = openSession.getMapper(userUtilInter.class);
    userBean = userUtilInter.checkUserByName(name);
    jsonObject = new JSONObject();
    System.out.println(userBean);
    if(null != userBean) {
        jsonObject.put("status", 0);
    }else {
        jsonObject.put("status", 1);
    }
    return jsonObject;
}

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文