1. 程式人生 > >前臺ajax重寫方法搭配後臺filter返回status實現ajax請求跳轉登入頁面

前臺ajax重寫方法搭配後臺filter返回status實現ajax請求跳轉登入頁面

前後端分離之後,原生的jquery的ajax不能實現控制頁面跳轉,一般會出現狀態碼302錯誤,但是可以通過重寫ajax增強方法,搭配後臺返回狀態碼錯誤實現頁面跳轉.後臺的filter核心程式碼為

 HttpServletResponse httpResponse = (HttpServletResponse) response;

            if(url.equals(contextPath + "/data")) {
               httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
               //httpResponse.sendRedirect(contextPath + "/index.jsp");
            }
前臺的ajax重寫核心程式碼:
  error : function(XMLHttpRequest, textStatus, errorThrown) {
                // 錯誤方法增強處理
            if(XMLHttpRequest.status ==401) {
                    window.location.href = "login.html";
                }
                    callback.error(XMLHttpRequest, textStatus, errorThrown);
            },
如果有實現起來有困難,下面給出連結一個小的demo

連結看這裡

相關推薦

前臺ajax重寫方法搭配後臺filter返回status實現ajax請求登入頁面

前後端分離之後,原生的jquery的ajax不能實現控制頁面跳轉,一般會出現狀態碼302錯誤,但是可以通過重寫ajax增強方法,搭配後臺返回狀態碼錯誤實現頁面跳轉.後臺的filter核心程式碼為 HttpServletResponse httpResponse = (Ht

Shiro攔截器,在登入時判斷是ajax請求返回json,普通請求頁面

在使用shiro時,會遇到普通的頁面請求以及api介面呼叫的請求,因此需要區別對待來判斷是跳轉登入頁面還是返回json的資料: 1.建立攔截器 package org.zyyd.base.filter; import com.alibaba.fastjson.JSONObject;

Ajax Session失效登入頁面方法

在Struts應用中,我們發出的請求都會經過 相應的攔截器進行相關處理,一般都會有一個使用者登入攔截(Session失效攔截);一般請求的話,如果Session失效時,我們會跳到登入頁面,可是如果我們採用AJAX請求時,將會返回登入頁面的HTML程式碼,這肯定不是我們想要的,

ionic 1頁面登入頁面後,返回按鈕處理

說到ionic返回按鈕,可能第一想到的就是ionic在app.config中配置按鈕的情況,小夥紫還不錯嘛。 這篇blog想討論的恰好不是這個,不過也和他有關啦,就因為這個按鈕,在正常頁面跳轉時候,肯定是需要的。 凡事總有例外: 很多情況下,比

extjs使用AJAX呼叫方法結束不給返回值賦值問題解決

   ExtJS中通過Ext.Ajax.request請求想返回值,可是總獲取不到,只有一種情況使用debugger才行,後來通過網上說Ext.Ajax.request預設是非同步的改成同步的就OK了,需要加async:false屬性,測試發現還是行不通;又使用全域性變數

easyui tree 的非同步載入 前臺的編寫方法後臺的json資料格式組裝方法

這是本人第一個技術文章,首先宣告,我其實是一個菜鳥 ,工作也才不到三個月,從認識java到現在也才剛剛一年。 寫這篇文章呢,也主要是為了把自己的心得記錄下來,也為了以後可以翻閱。 同時也希望可以分享出來與大家一起探討。 寫的不好,請輕噴,有什麼不對的地方,指出來大家一起探討

asp.net 重寫OnException返回json或頁面

message ide string exce () toupper tpc exceptio tostring protected override void OnException(ExceptionContext filterContext)

Ajax 請求後臺 前端頁面不更新踩坑記錄

style 返回 url direct edi pos 通過 繼續 檢查 踩坑環境:前端:Ajax post請求,json類型數據;後端 C#+MVC,前後端正常通信,但是當後臺驗證權限不通過時會RedirectToAction跳轉到登錄頁,結果現象是後臺正常執行登錄頁的渲

後臺返回狀態碼,js驗證登入

<script type="text/javascript"> $(document).ajaxComplete(function (event, xhr, options) {    

利用IIS的Url重寫實現http自動https的配置方法

專案一直使用http未加密的域名,考慮安全性,購買了ca安全證書實現https化,但由於有些場景訪問過來還是http,因為需要把http訪問使用者直接轉為https準備工作:下載安裝iis元件,url重寫,下載地址:https://www.iis.net/downloads/

微信瀏覽器頁面後再返回,如何恢復到前的位置的問題。

客戶端 his ont 恢復 func 詳情 size light list 以商品列表頁打比方, 眾所周知,點擊商品進入詳情頁要保證不損壞當前列表頁狀態的做法通常是在a標簽上加上target=_blank進行新開一個窗口打開詳情頁 這個做法是非常普遍的,包括很多

安卓開發中傳送簡訊的方法 APP內單發簡訊 群發簡訊 APP到簡訊頁 單條簡訊 多條簡訊Intent

1.APP內部直接傳送短息 包括髮送單條簡訊 傳送多條簡訊 APP內部發送簡訊首先要獲取一個傳送簡訊的許可權 <uses-permission android:name="android.permission.SEND_SMS"/> 安卓6.0以上的手機要動態獲取到這個許可

SpringBoot url重寫 帶www域名與不帶www域名之間

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/a915305592/article/details/82194662 轉自:https://blog.csdn.net/a915305592/article/d

django框架中 使用者登入post請求 源地址的方法

兩種方式實現使用者登入後網頁跳轉至源地址 常見的網站需要實現登陸後自動跳轉至源地址頁面,在get請求中,可以通過獲取Http中的referer地址實現;而在post請求中則無法直接通過獲取的地址進行跳轉。下面介紹兩種在Django框架中實現post請求跳轉源地址網頁的方式。 首先看一

一步步實現web程式資訊管理系統之二--後臺框架實現登陸頁面

SpringBoot springboot的目的是為了簡化spring應用的開發搭建以及開發過程。內部使用了特殊的處理,使得開發人員不需要進行額外繁鎖的xml檔案配置的編寫,其內部包含很多模組的配置只需要新增maven依賴即可使用,這項功能可謂對開發人員提供了大大的好處。使用springboot

一步一步實現web程式資訊管理系統之二----後臺框架實現登陸頁面

SpringBoot springboot的目的是為了簡化spring應用的開發搭建以及開發過程。內部使用了特殊的處理,使得開發人員不需要進行額外繁鎖的xml檔案配置的編寫,其內部包含很多模組的配置只需要新增maven依賴即可使用,這項功能可謂對開發人員提供了大大的好處。使用springboot只需要簡單配置

一步一步實現web程序信息管理系統之二----後臺框架實現登陸頁面

frame tco 代碼 pom web 放置 異常 boot ase SpringBootspringboot的目的是為了簡化spring應用的開發搭建以及開發過程。內部使用了特殊的處理,使得開發人員不需要進行額外繁鎖的xml文件配置的編寫,其內部包含很多模塊的配置只需要

webapp 使用者頁登入頁,登入返回重新整理使用者頁

mui專案:我有兩種方案: 1.window.opener.reload() 2.登入頁以彈出層的方式載入,登入完只需重新整理當前就ok created(){       //判斷是否已登入 } vue-cli專案 當前使用 /

react 頁面方法

在標籤內定義 onClick={this.函式名}; 再render()外層寫出具體函式函式方法。 例如: ....... toMessage () { window.location.href = "url"; } url為跳轉頁面路由。

JAVASCRIPT實現的WEB頁面以及頁面間傳值方法

除了form表單提交之外的方法 1.跳轉到新頁面,並且是在新視窗中開啟時: function gogogo() { //do someghing here... window.open("target.html"); } window是一個ja