ajaxがcontrollerを呼び出した後にページがジャンプできない問題

1179 ワード

周知のように、springmvc+spring+hibernateを用いてweb開発を行う場合、1つのcontrollerの方法では、ページ名の文字列を返すだけでページジャンプが実現されるが、ajaxを用いてcontrollerを非同期で呼び出す場合、この方法を用いてページジャンプを行うと機能しないことが分かった.ジャンプしたいページのソースコードが戻り値として返される場合でも、この問題はどのように解決されますか?
ソリューション:
 $.ajax({
                url:'/busasst/map/confirm',          
                data:{datastring:self.datastring},
                //dataType:'string',
                type:'post',
                async : false, //   true   
                success:function(data){
                    //self.data=data;
                    //self.doData();
                    window.location.href="/busasst/user/linestation";
                    console.log("    ")
                },error:function(){
                    console.log("    ");
                    return "error";
                }
});
実はajaxはcontrollerを呼び出すと自動的に上のコードのsucess関数の位置に戻ります.そのため、controllerで直接ページジャンプを行うと、ターゲットページのソースコードがこのsuccess関数に返されます.正しいページジャンプ方式はsuccess関数で完了するはずです.上のコードのように.
window.location.href="/busasst/user/linestation";
//      href     controller   ,     controller