最近使用ajax提交表單的時候,發現無法執行success函數,后台的代碼也正常執行了,但是就是無法執行success函數,執行error函數,返回的錯誤代碼時404.顯然是找不到請求的url。
可是后台的代碼都執行了,怎么可能找不到url呢,上網搜查加提問,網上的大神說是可能因為后台的處理函數中有頁面跳轉的需求。我又仔細檢查了半天,我確實沒有頁面跳轉的語句,也沒有請求新頁面。后來看了ie開發者工具里邊顯示的信息,發現居然真的有請求一個頁面,但我確實沒有在代碼里寫頁面跳轉,,郁悶了很久,后來想起來之前其他的controller中好像有@ResponseBody,這里卻沒有,所以添上去試了一下,居然可以了。
於是我查詢了一下@ResponseBody注解的說明,發現它的作用是將你代碼return的值作為http請求的內容發揮客戶端,說白了就是你可以在前台直接當成json來接受后台發送的數據。於是我明白了,是因為我之前沒寫這個注解,所以,http請求的內容默認將是一個頁面,而有了這個注解呢,就可以直接把函數返回值作為http請求的內容了。
源地址:點擊打開鏈接