Ajax发送POST请求SpringMVC页面跳转失败
来源:互联网 发布:linux怎么安装语言包 编辑:程序博客网 时间:2024/05/12 14:47
问题描述:因为使用的是SpringMVC框架,所以想使用ModelAndView进行页面跳转。思路是发送POST请求,然后controller层中直接返回相应ModelAndView,但是这种方法不可行。那我们的解决方法是什么呢?
我的解决方案是,将判断前移,什么意思呢?服务器值返回Map数据,对应页面跳转状态,将逻辑代码写在js代码中。代码如下:
使用
window.location.href = “/iswust2hand/index.jsp”;
进行相应页面跳转
为什么使用Ajax向SpringMVC中Controller层发送POST请求无法无论我们使用return “index.jsp”、 转发 、 重定向 还是 ModelAndView,都无法解决页面跳转的问题。
出现这个问题发的原因是什么呢?
原因:
这就要从Ajax的原理说起,Ajax实际上就是通过XMLHttpRequest来发送请求对象向服务器发送异步请求,从服务器获取数据,然后使用JS来操作DOM而更新页面。
也就是说,服务器端返回的是纯文本流,可以是xml格式,html格式,js格式,也可以是字符串格式,但总结一句话,客户端获取ajax异步获取结果后,不是直接显示在页面上,而是必须要先由js处理,完成之后才能显示在页面。
这就可以解释我们的问题了,当Ajax请求后,返回的只能是字符流,不是页面。所以要使页面跳转,我的解决方案是,将数据用Map返回,然后将数据交由js去解决,
window.location.href = “/iswust2hand/index.jsp”; 跳转就可以。
代码如下:
/** * 用户登录 */ @RequestMapping(value="/login") @ResponseBody public Map<String, String> login(User user,HttpSession session){ user.setPassword(MD5Utils.str2MD5(user.getPassword())); User u = this.userService.login(user); Map<String, String> message = new HashMap<>(); if(u!=null){ session.setAttribute("user", u); message.put("code", "登陆成功!"); }else{ message.put("code", "用户名或密码错误!"); } return message; }
$.post('../user/login', {"phone":uphone,"password":upwd}, function(data) { if(data.code=="登陆成功!"){ location.href="../html/myHome.html"; }else{ location.href="../html/login.html"; } });
- Ajax发送POST请求SpringMVC页面跳转失败
- Ajax发送POST请求SpringMVC页面跳转失败
- Ajax post请求跳转页面
- ajax 页面发送post请求
- Ajax发送POST请求
- Ajax发送Post请求
- Ajax -- 发送 POST 请求
- Ajax发送post请求
- ajax 发送post请求
- ajax 发送post请求传参给SpringMVC
- 使用POST请求跳转页面
- ajax发送get、post请求
- ajax发送get、post请求
- Post方式发送Ajax请求
- AJAX发送POST、GET请求
- 原生ajax发送post请求
- ajax post请求之后 实现页面跳转和带参数跳转问题
- ajax向controller发送请求 页面不跳转到另一个页面
- App 后端架构设计方案 设计思想与最佳实践
- slf4j+logback实现日志存放到不同文件
- ionic多选框
- NYOJ63 小猴子下落(二叉树性质)
- linux 数组和指针
- Ajax发送POST请求SpringMVC页面跳转失败
- 机器学习 Python 库 Top 20
- 基于PHP使用rabbitmq实现消息队列
- Android Studio导入新项目gradle出错解决方法
- js事件冒泡,事件捕获,事件委托
- mycelipse出错报告调节方法
- linux网络编程之socket(七):一个进程发起多个连接和gethostbyname等函数
- EL表达式获取对象属性的原理
- Unity