springmvc return跳转的一个小问题。

xzz111 2014-12-22 11:25:05
本来Controller接到普通请求,return “somePage”,这样就跳转了。
但是呢。。
今天脑抽,前台用$.post()提交了数据(不需要回调),我了个大草,return那里就不给跳转了。。。
这样怎么解决?我写成表单提交,还是可以让spring收到ajax请求也可以强制跳转的?
...全文
686 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzz111 2014-12-25
  • 打赏
  • 举报
回复
引用 18 楼 lsnnsrq 的回复:
楼主,可以问一个问题吗?我第一次用springmvc,我从前台设置了action:/userExamination/StateList,后台有一个类为:userExamination,以及它下面的方法:StateList,也增加了注释,但是它就是不走StateList这个方法,可以说一下吗?
不好意思,今天没怎么上论坛,不知道你的具体问题,能否贴出异常信息?
xzz111 2014-12-24
  • 打赏
  • 举报
回复
引用 10 楼 wrong1111 的回复:
楼主你要弄清二点 1,AJAX提交的数据,在后端如果有返回,请把返回输出头写成application/JSON ,按此返回信息或按你说,直接返回空串。 2,后端如果是做跳转的页面的,也是可以接受,但是前端肯定不会做跳转,只是会把跳转后的JSP内容,返回给你。 所以,你想要改,就必须要在后端做下判断,如果发现请求头是json,做别的业务处理(更好的是另写方法)
唔,这两天还是想不出解决方法呢,只能在地址栏上带着参数了。。只要是ajax提交的无论如何在后端的return都是不能跳转的
yez497822 2014-12-24
  • 打赏
  • 举报
回复
引用 2 楼 jimmy609 的回复:
ajax是无法再controller里面return 跳转的,可以返回后再 ajax的success里面进行 window.location.href
请重新理解一下什么叫异步调用吧...
Jonwh 2014-12-24
  • 打赏
  • 举报
回复
Ajax是异步请求 只会接收最后返回的数据,不会执行页面跳转请求改变url地址,要跳转的话,可以使用window.location.href
lsnnsrq 2014-12-24
  • 打赏
  • 举报
回复
楼主,可以问一个问题吗?我第一次用springmvc,我从前台设置了action:/userExamination/StateList,后台有一个类为:userExamination,以及它下面的方法:StateList,也增加了注释,但是它就是不走StateList这个方法,可以说一下吗?
lsnnsrq 2014-12-24
  • 打赏
  • 举报
回复
楼主,可以问一个问题吗?我第一次用springmvc,我从前台设置了action:/userExamination/StateList,后台有一个类为:userExamination,以及它下面的方法:StateList,也增加了注释,但是它就是不走StateList这个方法,可以说一下吗?
lsnnsrq 2014-12-24
  • 打赏
  • 举报
回复
楼主,可以问一个问题吗?我第一次用springmvc,我从前台设置了action:/userExamination/StateList,后台有一个类为:userExamination,以及它下面的方法:StateList,也增加了注释,但是它就是不走StateList这个方法,可以说一下吗?
咖啡加糖_ 2014-12-24
  • 打赏
  • 举报
回复
引用 13 楼 yez497822 的回复:
[quote=引用 2 楼 jimmy609 的回复:] ajax是无法再controller里面return 跳转的,可以返回后再 ajax的success里面进行 window.location.href
请重新理解一下什么叫异步调用吧...[/quote] 调用 是调用 ,跳转时跳转 ,这两个是不是一样的,楼主要的是在后台跳转,并不是调一个页面
colie_li 2014-12-23
  • 打赏
  • 举报
回复
估计是后台的ResultMapping没有指定请求方法吧
wrong1111 2014-12-23
  • 打赏
  • 举报
回复
楼主你要弄清二点 1,AJAX提交的数据,在后端如果有返回,请把返回输出头写成application/JSON ,按此返回信息或按你说,直接返回空串。 2,后端如果是做跳转的页面的,也是可以接受,但是前端肯定不会做跳转,只是会把跳转后的JSP内容,返回给你。 所以,你想要改,就必须要在后端做下判断,如果发现请求头是json,做别的业务处理(更好的是另写方法)
xzz111 2014-12-22
  • 打赏
  • 举报
回复
引用 8 楼 qq840727854 的回复:
怎么能说 没有 return 呢 其实 是return 的 所谓的 return 无非 就是 转发到另外一个 servlet上,或者 重定向什么的, 你要 明白 ajax 请求 是 异步请求,他最后得到的是一个数据,这个数据可能是 一个 html 也可能是 json 你的 $.post 是 请求 一个controller 这个 controller return 后 是跳转到一个jsp里的 其实 ajax返回的 是jsp的内容, 而不是说 直接让你网页跳转。
呃,可能你没弄清楚我的问题,我并没说没有return,而是return的结果不是跳转。
qq840727854 2014-12-22
  • 打赏
  • 举报
回复
怎么能说 没有 return 呢 其实 是return 的 所谓的 return 无非 就是 转发到另外一个 servlet上,或者 重定向什么的, 你要 明白 ajax 请求 是 异步请求,他最后得到的是一个数据,这个数据可能是 一个 html 也可能是 json 你的 $.post 是 请求 一个controller 这个 controller return 后 是跳转到一个jsp里的 其实 ajax返回的 是jsp的内容, 而不是说 直接让你网页跳转。
xzz111 2014-12-22
  • 打赏
  • 举报
回复
引用 2 楼 jimmy609 的回复:
ajax是无法再controller里面return 跳转的,可以返回后再 ajax的success里面进行 window.location.href
如果不用form提交,不用ajax提交,有没有其他方法可以用post形式提交的呢?
liangtu 2014-12-22
  • 打赏
  • 举报
回复
引用 2 楼 jimmy609 的回复:
ajax是无法再controller里面return 跳转的,可以返回后再 ajax的success里面进行 window.location.href
+1
xzz111 2014-12-22
  • 打赏
  • 举报
回复
引用 4 楼 t_jl1979 的回复:
$.post()是简写的ajax函数 $.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType }); 声明是: jQuery.post( url [, data ] [, success ] [, dataType ] ) 可以在回调函数中处理,或者 .done中处理: var jqxhr = $.post( "example.php", function() { alert( "success" ); }) .done(function() { alert( "second success" ); }) .fail(function() { alert( "error" ); }) .always(function() { alert( "finished" ); });
其实我是不想在页面中用form,但是需要用到post提交,就用的ajax,也不需要回调(无论成功失败),只要提交到后台,让后台负责跳转就行了。 另外在前端做跳转的话,后台需要把数据返回,再由前端发起另一个请求到新的页面,这样没必要呢,直接在后台接到请求跳转不就方便多了。还在纠结这里怎么办呢。。 太罗嗦了,简单点就是:前端-->post到后台-->后台跳转新页面。
冥王之锤 2014-12-22
  • 打赏
  • 举报
回复
$.post()是简写的ajax函数 $.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType }); 声明是: jQuery.post( url [, data ] [, success ] [, dataType ] ) 可以在回调函数中处理,或者 .done中处理: var jqxhr = $.post( "example.php", function() { alert( "success" ); }) .done(function() { alert( "second success" ); }) .fail(function() { alert( "error" ); }) .always(function() { alert( "finished" ); });
xzz111 2014-12-22
  • 打赏
  • 举报
回复
好吧,估计也是这个结果了。。
咖啡加糖_ 2014-12-22
  • 打赏
  • 举报
回复
ajax是无法再controller里面return 跳转的,可以返回后再 ajax的success里面进行 window.location.href
xzz111 2014-12-22
  • 打赏
  • 举报
回复
为何到现在都没人回答!!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧