overlordLSY
2018-08-06 01:21
采纳率: 100%
浏览 3.0k

用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,应该怎么改
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • qq_29632867 2018-08-06 01:39
    已采纳

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

    点赞 打赏 评论
  • 张音乐 2018-08-06 01:24
     success : function(result) {
    if (result.status == 1) {
    if (rememberUser) {
    addCookie("userName", userName, 30);
        location.href = '你要跳转的链接'
    } 
    
    点赞 打赏 评论
  • overlordLSY 2018-08-06 01:26

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

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

    点赞 打赏 评论
  • batterMRTAN 2018-08-06 01:33

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

    点赞 打赏 评论
  • 盛世兔 2018-08-06 01:35

    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": 返回纯文本字符串

    点赞 打赏 评论
  • druid1990 2018-08-06 01:51

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

    点赞 打赏 评论
  • LuciferMS 2018-08-06 02:07

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

    点赞 打赏 评论

相关推荐 更多相似问题