1. 程式人生 > >ajax呼叫後臺異常,頁面跳轉

ajax呼叫後臺異常,頁面跳轉

在java開發中,我們往往需要統一處理異常資訊,跳轉到某一個錯誤提示頁面。

然而,通過ajax呼叫後臺時,後臺丟擲異常後,頁面卻沒有跳轉到異常頁面,原因是後臺異常時,沒有正確向ajax返回資訊,

這時,ajax就會走到error處理方法。

這種問題怎麼解決呢,下面用程式碼舉例:

失敗時,返回頁面的jsp為:/view/error/notAuthorize.jsp

ajax程式碼:

[javascript] view plaincopy
  1. $.ajax({  
  2.      type: "GET",  
  3.      url: "${path}/off/getScheduleJson.action?random=Math.random"
    ,  
  4.      data: {day:data},  
  5.      dataType: "json",  
  6.      success: function(data){  
  7.                 success();//成功時的處理方法
  8.               },  
  9.      error: function(data){  
  10.        error(data);//失敗時的處理方法
  11.      }  
  12.  });  

下面主要說失敗時的處理方法: [javascript] view plaincopy
  1. function error(data){  
  2.     var result = data.responseText;  
  3.     if(result !=null && result !=''){//後臺異常時,並在後臺捕獲
  4.         var url = getRootPath()+"/view/error/notAuthorize.jsp";//獲取工程路徑
  5.         location.href = url;  
  6.         //$(document.body).html(result); 
  7.     }else{//後臺異常,且沒有被捕獲
  8.         clickautohide(5);  
  9.     }  
  10. }  

[javascript] view plaincopy
  1. //js獲取專案根路徑,如:http://localhost:8099/UniqueduHome
  2.  function getRootPath(){  
  3.         //獲取當前網址,如: http://localhost:8099/UniqueduHome/view/error/notAuthorize.jsp
  4.         var curWwwPath=window.document.location.href;  
  5.         //獲取主機地址之後的目錄,如: UniqueduHome/view/error/notAuthorize.jsp
  6.         var pathName=window.document.location.pathname;  
  7.         var pos=curWwwPath.indexOf(pathName);  
  8.         //獲取主機地址,如: http://localhost:8099
  9.         var localhostPaht=curWwwPath.substring(0,pos);  
  10.         //獲取帶"/"的專案名,如:/UniqueduHome
  11.         var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);  
  12.         return(localhostPaht+projectName);  
  13.     }  

相關推薦

ajax呼叫後臺異常頁面

在java開發中,我們往往需要統一處理異常資訊,跳轉到某一個錯誤提示頁面。 然而,通過ajax呼叫後臺時,後臺丟擲異常後,頁面卻沒有跳轉到異常頁面,原因是後臺異常時,沒有正確向ajax返回資訊, 這時,ajax就會走到error處理方法。 這種問題怎麼解決呢,下面用

springboot2.0---06、自定義異常404頁面,500json處理

1.定義異常控制器 @Controller @ControllerAdvice @RequestMapping("/error") public class ErrorController {

wex5 教程 之 圖文講解 登陸註冊頁面

一.效果預覽:       登陸頁面   首頁用windowContainer裝載                  註冊頁面                               登陸成功後,跳轉至主題頁面         二 設計思路及程式碼實現:    

vue踩坑筆記03---路由的作用頁面

vue踩坑筆記03---路由的作用,頁面跳轉 無引數跳轉: 使用路由標籤跳轉: 通過路由路徑跳轉: 通過路由名稱跳轉: 使用使用methods跳轉: 有引數跳轉: 使用路由標籤

註冊JQuery使用ajax呼叫後臺方法判斷使用者名稱、郵箱是否存在並顯示隱藏提示

JavaScript程式碼 function existUserName(userName, reqUserName) { if (userName.val().length > 0) { $.a

關於新手入坑vue頁面樣式錯位重新整理又好了的情況

       在專案開始的時候,一股腦的熱情把所有的程式碼都碼好了,然後就開始測試各模組的功能。在頁面跳轉的時候總有幾個頁面,在跳到該頁面時樣式全錯位了,但是重新整理一下就又好。於是就開啟瀏覽器檢視在頁面跳轉時樣式的變化,我發現有些頁面,在跳轉時頁面的樣式

element-ui 表格單選高亮頁面後保持高亮

1:element-ui表格高亮預設顏色,在index.min.css中1855行,這裡我改動了一下: .el-table__body tr.current-row > td {

當session失效頁面到登陸介面的處理

每個系統頁面操作過程中都有一個session,session可以存放少量的使用者資訊,供我們的頁面操作使用。當session超時失效的時候我們就要重新往session中寫入登陸的使用者資訊,而這個寫入的操作一般寫在在使用者成功登陸系統的時候,所以當session失效時,我們頁

ajax獲取後臺資料頁面Json資料按照json格式化輸出

樣式效果圖: 2.頁面程式碼: //查詢出對應的原始碼進行展示 function querySource(label) { var url = base_path+"console/cfg/querySource"; $.ajax({ url:

thinkphp使用ajax提交後怎麼做頁面

我的登陸頁面是用ajax提交的。提交成功後除了顯示登陸成功的提醒資訊外,還會返回一個url給js做頁面跳轉。 如下: http://127.0.0.1/demo/Home/User/login.html 提交表單後,後臺返回一個jumpUrl="Home/Index", 用U('Home/Index')函式生

js+css控制彈出小視窗之後後整個頁面背景圖變色並且不可操作點選確定頁面。。。

<html> <head> <title>彈出一個視窗後,後面的層不可操作 ,點選確定之後跳轉新的頁面</title> <script> function show() //顯示隱藏層和彈出層 {

Prism中頁面以及頁面之間傳遞引數(NavigationParameters)

一、頁面跳轉概述 在Prism中,使用Navigation來進行頁面之間的跳轉通常需要一下幾步: 1. 建立新頁面,並且實現INavigationAware介面 2. 使用IRegionManag

response.sendRedirect頁面無效原因是在於ajax請求後臺

專案想要在後臺進行頁面跳轉,用了response.sendRedirect,但是沒反應,debug了一下,發現執行到重定向的時候沒反應,當時就是一臉懵逼的,怎麼重定向沒有進行要頁面跳轉呢?到網上搜了下原因, 原因在於:  (從網上摘錄)  Ajax只是利用指令碼訪問對應ur

ajax呼叫servletservlet內無法實現頁面

以下兩個不管用哪個都無法實現跳轉。 req.getRequestDispatcher(path).forward(req, resp); resp.sendRedirect(path); 最終只能在頁面的javascript實現跳轉。

記一次WebView使用異常點選搜尋引擎頁內的超連結無法到相應的頁面

事情是這樣的,有業務需求需要使用yandex(www.yandex.ru)這個搜尋引擎搜尋內容,在自己的activity裡面建立了一個webview,webview load這個搜尋引擎搜尋關鍵字(隨便一個關鍵字都可以),大概介面如下:隨便點選其中的連結項,正常情況下希望能l

spring boot security 實現登陸時ajax請求返回json而不是直接頁面

1、編寫自己的SuccessHandler public class AuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {public void onAuthenticati

servlet的後臺頁面ajax頁面

1.servlet的頁面跳轉 Servlet:當然,在servlet中,一般跳轉都發生在doGet, doPost等方法裡面。1) redirect 方式response.sendRedirect("/a.jsp");頁面的路徑是相對路徑。sendRedirect可以將頁面

Android 如何保證App切換到後臺頁面重新開啟APP、或返回之前頁面維持其狀態不變

專案中遇到的一些小問題,記錄、分享一下。 Android 如何保證App切換到後臺,或頁面跳轉後,重新開啟APP、或返回之前頁面時,維持其頁面狀態不變? 1、問:當APP啟動後,開啟某一介面,然後點選手機HOME鍵,使應用程式退到後臺;當再次開啟App時,如何保證

前後端分離場景下ajax 如何控制頁面

在實際的應用中,前後端分離越來越常見,前端負責頁面之間的路由,需要資料時,傳送ajax請求就可以了。但是我希望在使用ajax時候,可以控制頁面的跳轉,怎麼辦呢? 有兩種情況 第一種情況,傳送同步的請求,成功返回後,在回撥函式中使用window.locatin

實現ajax提交表單頁面

表單程式碼 <form id="save" class="form-horizontal" role="form" method=