用ajax请求实现表单提交并页面跳转的问题

使用的是SpringBoot框架,部分代码如下
JS代码:
function login() {
var userName = $("#inputName").val();
var userPassword = $("#inputPassword").val();
var rememberUser = $("input[type=checkbox]").get(0).checked;
$.ajax({
url : "login/userLogin",
type : "post",
dataType : "json",
data : {
"userName" : userName,
"userPassword" : userPassword
},
success : function(result) {
if (result.status == 1) {
if (rememberUser) {
addCookie("userName", userName, 30);
} else {
delCookie("userName");
}
window.location.href = "menu.html";
} else if (result.status == 0) {
alert(result.message);
}
}
});
return false;
}
Controller代码:
@RequestMapping(value = "login/userLogin", method = RequestMethod.POST)
@ResponseBody
public Result login(User user) {
Result result = userService.login(user);
return result;
}
登录form提交后,每次都是显示返回的json,而不是跳转到menu.html,应该怎么改
图片说明

说明你的result要么没有返回,要么你返回的result!=1;没有执行windows.location.href

 success : function(result) {
if (result.status == 1) {
if (rememberUser) {
addCookie("userName", userName, 30);
    location.href = '你要跳转的链接'
} 

我那个cookie是要实现记住用户功能,不选中也应该跳转的

if (result.status == 1) 需要解析下,你的图只是说明你调用了success函数,没有跳转页面,说明没进这个判断里。
**尝试下: **
解析下看看
var obj = eval('(' + result + ')');
alert( obj.status);

你这个方法是不是在submit的时候调用的?这个ruturn false是?

dataType
类型:String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串

去掉@ResponseBody注解,返回String类型,返回"menu"

其实我觉得现在这个东西用vue.js v-model绑定input框和数据做起来更舒服