ajax的路徑跳轉


ajax請求是局部刷新頁面,所以在發送ajax請求后返回的內容會刷新頁面中的局部,而不會進行頁面跳轉,

即使使用重定向,也會將重定向后返回的內容刷新在原頁面的局部(在F12的Network中可以查看請求的response返回的內容)

如:

1.在進行登陸時:

如果登錄失敗時需要在原頁面局部顯示錯誤信息,因此需要使用ajax請求

如果登陸成功則跳轉到某個頁面,此時使用ajax請求則無法實現跳轉新頁面的功能

2.在添加新內容時:

如果有異常信息則需要在原頁面提醒,需使用ajax請求

如果添加成功則可能需要跳轉到列表頁面

解決方法:

使用  location.href='請求路徑'  家族

具體實現如:

前端:

 1 $.ajax({
 2   url:'/handle_login',
 3   data:$('#form-login').serialize(),
 4   type:'post',
 5   dataType:'json',
 6   success:function (json) {
 7     if(json.state==2000){
 8       // 注意:此處的index是Controller層的請求路徑,
 9       // 由於在此例子中index頁面是需要使用模板引擎解析的,所以需要使用Controller進行跳轉
          2000為請求成功狀態碼
11       window.location.href="/index"; 12     }else{ 13       formLogin.message=json.message; 14     } 15   } 16 });

 

 
后端:只需要返回一個json對象,其中的state表示狀態碼,上述例子中state為2000時表示成功
 
1 @RequestMapping("handle_login")
2 @ResponseBody
3 public JsonResult<Void> handleLogin(String phone, String password, String remember,
4     HttpServletRequest request, HttpServletResponse response) {
5   userService.loginUser(phone, password, remember, request, response);
6   return JsonResult.ok();
7 }

 

此處的JsonResult是用於創建返回數據對象的類,ok是一個靜態方法,表示操作成功,state為2000
 
提示:前述中使用了家族這個詞匯,原因是可以用於跳轉的不僅僅window.location.href(location.href),
還有top.location.href、parent.location.href等實現,甚至還有open方法打開新頁面,
其區別參考:https://www.cnblogs.com/xiao-lin-unit/p/13727116.html
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM