Problem: springmvc 處理Ajax請求的controller中跳轉語句無效

問題描述
今天做項目的時候用到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";

                     }

                }); 
            });

        });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章