最近使用ajax提交表单的时候,发现无法执行success函数,后台的代码也正常执行了,但是就是无法执行success函数,执行error函数,返回的错误代码时404.显然是找不到请求的url。
可是后台的代码都执行了,怎么可能找不到url呢,上网搜查加提问,网上的大神说是可能因为后台的处理函数中有页面跳转的需求。我又仔细检查了半天,我确实没有页面跳转的语句,也没有请求新页面。后来看了ie开发者工具里边显示的信息,发现居然真的有请求一个页面,但我确实没有在代码里写页面跳转,,郁闷了很久,后来想起来之前其他的controller中好像有@ResponseBody,这里却没有,所以添上去试了一下,居然可以了。
于是我查询了一下@ResponseBody注解的说明,发现它的作用是将你代码return的值作为http请求的内容发挥客户端,说白了就是你可以在前台直接当成json来接受后台发送的数据。于是我明白了,是因为我之前没写这个注解,所以,http请求的内容默认将是一个页面,而有了这个注解呢,就可以直接把函数返回值作为http请求的内容了。
源地址:点击打开链接