問題描述:
今天做項目的時候用到ajax傳值,但是經過後臺controller處理後希望刷新當前所在的界面,在ajax請求的controller 中使用return直接跳轉沒有效果。
在一個controller的方法中,正常頁面跳轉forward,redirect好用,但是當我們使用ajax請求controller的時候,再使用這種方法進行頁面跳轉就會發現不靈了。
問題解決方案:
ajax在請求controller後會自動返回到success函數位置,如果直接在controller中進行頁面跳轉,則目標頁面的源代碼會被返回到這個success函數裏,正確的頁面跳轉方式應該是在success函數中完成,以下代碼:
window.location.href = "Libraryset/bookcaseset.jsp";
$(function(){
$("#addbookcase").on('click', function(){
var name = $("#name").val();//取得用戶輸入的消息變量
$.ajax({//提交請求給Controller處理。
type:"POST",
url:"addbookcase.do",//在url中傳參
//async : false,//true爲異步
contentType:"application/x-www-form-urlencoded;charset=utf-8",
dataType:"text",
data:"name=" + name,
//data:{
// 'msg':JSON.stringify(jsonStr)
//},
success: function(data){
$('#myModal').modal('hide');
window.location.href = "Libraryset/bookcaseset.jsp";
}
});
});
});