今天开发过程中碰到的一个问题, 提交表单的时候使用ajax发送请求成功, 数据也添加进去了, 但是确没有收到返回, 页面就自动刷新了
原因
<button type="submit" onclick="updateSubmit()" class="btn btn-primary">提交</button>
这里的提交按钮type为submit, submit会强制刷新页面, 因为页面被刷新了, 那么ajax返回的信息来到了一个新的页面, 那返回的信息自然是接收不到的
解决
<button type="button" onclick="updateSubmit()" class="btn btn-primary">提交</button>
所以将submit改成button就解决了!
在百度的过程中, 也找到了其他可能发生的情况:
- 如果后台的类是用的
@Controller
注解, 则方法必须加上@ResponseBody
注解, 也可以直接使用@RestController
, 这是@Controller和@ResponseBody两个注解的结合, 所以返回json数据就不用在方法前面加@ResponseBody注解了 - 如果传递的参数是
数组
, 后台是用Array
或List
接收, 则需要在ajax中添加 traditional:true 因为这个属性默认是false, jquery会深度序列化这个对象, 以适应PHP等框架, 我们可以通过设置tradtional为true阻止深度序列化
traditional
是false时, 使用数组或list接收就是[[“abc”,“qwe”]]格式
traditional
是true时, 使用数组或list接收就是[“abc”,“qwe”]格式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/98665.html