今天开发过程中碰到的一个问题, 提交表单的时候使用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”]格式
更多推荐
解决AJAX发送请求成功却接收不到返回参数问题
发布评论