Ajax请求成功 回调函数进入了error函数 并且浏览器返回错误信息

使用了jQuery $.Ajax访问springMVC的controller 请求成功 可是回调函数进入了error函数 并且浏览器返回错误信息

Failed to load resource: the server responded with a status of 404 ()


下面放代码

Ajax

function login(that) {
            $.ajax({
                data: {
                    username:$("#username").val(),
                    password:$("#password").val()
                },
                type: "post",
                url: "/checklogin",
                dataType: "json",
                error: function (data) {
                    console.log(data);
                    $(that).removeClass("processing");
                },
                success: function (response) {
                    $(that).removeClass("processing");
                    if (response == "error") {
                        $("#msg").text("用户名或密码错误");
                    } else {
                        window.location.href = "/welcome";
                    }
                }
            });
        }
        
         

Controller

@Controller
public class LoginController {
    @Autowired
    private UserService userService;
    
    @RequestMapping("/checklogin")
    public String checkLogin(@RequestParam("username") String username, @RequestParam("password") String password, HttpSession session){
        System.out.println(username  + "-" + password);
        User user = userService.login(username, password);
        if(user != null){
            return "success";
        }
        else{
            return "error";
        }
    }
}
阅读 5.8k
3 个回答

需要在Controller加上访问的requestMapping上加上 @ResponseBody 注解即可

@ResponseBody用法

作用:

该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:

返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用.

  • 作者:tenlee
  • 链接:https://www.jianshu.com/p/709...
  • 來源:简书
  • 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

后端返回了404,当然是进入错误处理了

先去看 ajax的规范,只能是字符串通讯,大部分包括你的实例还是 json格式的字符串,但是你的后台明显返回了一个页面而不是字符串(不是方法返回 string就是返回字符串了),你把 controller改成 restcontroller试一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题