天天看點

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

問題1:

使用ajax通路的背景,背景正常執行,并且正常傳回資料,但是不能進入前台的ajax回調函數中

問題展示:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

 問題解決:

最後發現是因為背景的方法并未加注解:@ResponseBody,導緻方法不認識最後傳回的是給ajax的data,而是以為要去找這個頁面是以并未找到!!

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

View Code

同樣的,如果Controller中的方法執行完成之後  不想傳回前台,就此打住,則也需要加上@ResponseBody

因為即使方法傳回值為void

spring也會按照前台請求過來的頁面位址去找,找不到就會如下:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

是以,在背景:【以下的代碼依舊是  按照前台department/addPosition.htmls繼續找下去,如果想在此打住,不要再去前台了,添加注解】

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

更改之後如下:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

問題2:

在此基礎上,又發現一種新的情況:

背景代碼如下:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

或者:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

這兩種情況,雖然前台js中使用ajax通路了背景,但是背景方法處理完

1.void沒有傳回值  

2.雖然有傳回值,但是String a = null;可能會直接将這個a傳回,但是a初始化就是Null,也就是沒有開辟實際的空間,這樣也是傳回不到ajax的回調函數中的!!!!!

多注意這兩種情況!!

正确處理這種情況,應當:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

最起碼的給String a = "";即可!!

問題3:

同樣在controller處理完後,前背景都沒有報錯,但是也是沒有進入ajax回調函數

背景錯誤代碼展示:

【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數
【springMVC 背景跳轉前台】1.使用ajax通路的背景,背景正常執行,傳回資料,但是不能進入前台的ajax回調函數中 ----2.前背景都沒有報錯,不能進入ajax回調函數

問題解決:

因為這個方法中 傳回給前台後是有亂碼出現的,是以加了:@RequestMapping(value = "boundWx" ,produces = "text/json;charset=UTF-8")

而問題就出在:此處的produces = "text/json;charset=UTF-8"與傳回值的格式并不相符。

更改為如下的就可以正常傳回了:

問題4:

新的同類型問題

ajax + springMVC背景處理完成跳轉給前台的ajax的回調函數中,

表現:背景程式執行了三次,但是最後都不會傳回到前台回調函數中,且前背景都不報錯!

問題:請認真檢查前台使用了ajax的是在哪個按鈕的點選事件中,這個點選事件是否 return ; 請認真檢查前台jsp中是否重複引用了jQuery等js檔案導緻背景會重複執行幾次