老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Ajax請求時無法重定向怎么辦

這篇文章給大家分享的是有關Ajax請求時無法重定向怎么辦的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

資源ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

前言

今天發現,當使用Ajax請求時,如果后臺進行重定向到其他頁面時是無法成功的,只能在瀏覽器地址欄輸入才能夠實現重定向。

Ajax默認就是不支持重定向的,它是局部刷新,不重新加載頁面。

需要實現的功能是,后臺網關攔截請求,看請求中是否存在token.如果不存在就跳轉到登錄頁面。因為大多數請求都是使用Ajax.一開始發現無法進行重定向,每次都是返回到Ajax的結果處理函數。最終的解決辦法如下,需要后臺和前端進行處理。

后臺:

/**
*功能描述
* @author lgj
* @Description 重定向工具類
* @date 2/27/19
*/
@Slf4j
public class RedirecUtil {
/**
*功能描述
* @author lgj
* @Description 重定向
* @date 2/27/19
* @param:
* @return:
*
*/
public static void redirect(RequestContext ctx, String redirectUrl){
try{
//如果是Ajax請求
if("XMLHttpRequest".equals(ctx.getRequest().getHeader("X-Requested-With"))){
log.debug("ajax redirect");
sendRedirect(ctx.getResponse(),redirectUrl);
}
//如果是瀏覽器地址欄請求
else {
log.debug("normal redirect ");
ctx.getResponse().sendRedirect(redirectUrl);
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
/**
*功能描述 
* @author lgj
* @Description Ajax請求時重定向處理
* @date 2/27/19
* @param: 
* @return: 
*
*/
private static void sendRedirect(HttpServletResponse response, String redirectUrl){
try {
       //這里并不是設置跳轉頁面,而是將重定向的地址發給前端,讓前端執行重定向
//設置跳轉地址
response.setHeader("redirectUrl", redirectUrl);
//設置跳轉使能
response.setHeader("enableRedirect","true");
response.flushBuffer();
} catch (IOException ex) {
log.error("Could not redirect to: " + redirectUrl, ex);
}
}
}

前端處理

第一種方式:使用Ajax的complete方法

$.ajax({
type: "post",
url: "/auth/token/check",
success: function(data,status){
console.log("/token/check 返回 status : "+status)
},
//請求完成調用
(XHR, TS){
console.log("complete");
var url = XHR.getResponseHeader("redirectUrl");
console.log("redirectUrl = " + url);
var enable = XHR.getResponseHeader("enaleRedirect");
console.log("enableRedirect = " + enable);
if((enable == "true") && (url != "")){ 
var win = window; 
         while(win != win.top){
      win = win.top;
        }
         win.location.href = url; 
          } 
      }, 
    });
})

但是上面有個問題就是,每個ajax都需要編寫 comlete 方法,代碼復用率低。

第二種方法 : 使用全局的complete方法

ajax請求

$("#NON-TOKEN").click(function () {
$.ajax({
type: "post",
url: "/auth/token/check",
success: function(data,status){
console.log("/token/check 返回 status : "+status)
},
});

全局處理

注意這參數(event, xhr, settings)不能少,否則會報錯。

//每一個Ajax 請求完成之后都會執行。
$(document).ajaxComplete(function (event, xhr, settings) {
console.log("ajaxComplete ")
redirectHandle(xhr);
})
function redirectHandle(xhr) {
  //獲取后臺返回的參數
var url = xhr.getResponseHeader("redirectUrl");
console.log("redirectUrl = " + url);
var enable = xhr.getResponseHeader("enableRedirect");
if((enable == "true") && (url != "")){
var win = window;
while(win != win.top){
win = win.top;
}
win.location.href = url;
}
}

也可以將上述前端代碼放入一個js文件中,在需要進行重定向的時候引入即可,便可以實現更高的代碼復用率。

redirect.js

function redirectHandle(xhr) {
var url = xhr.getResponseHeader("redirectUrl");
console.log("redirectUrl = " + url);
var enable = xhr.getResponseHeader("enableRedirect");
if((enable == "true") && (url != "")){
var win = window;
while(win != win.top){
win = win.top;
}
win.location.href = url;
}
}
$(function () {
$(document).ajaxComplete(function (event, xhr, settings) {
console.log("ajaxComplete adffdafadsaf")
redirectHandle(xhr);
})
})

引入js文件,src根據據實際情況設置。

感謝各位的閱讀!關于“Ajax請求時無法重定向怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


本文題目:Ajax請求時無法重定向怎么辦
標題網址:http://www.xueling.net.cn/article/ihedco.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产亚av手机在线观看 | 成人91网站| 国产美女精品AⅤ在线播放 精品伊人久久久久7777人 | 久久久久青草 | 成人小视频免费看 | 欧美日韩九区 | 欧美成人影院亚洲综合图 | 特级淫片aaaaaaa级附近的 | 久久精彩| 先锋影音9porny自拍啪 | 成人久久色 | 日韩精品无码专区免费视频 | 国产tv日韩在线观看视频 | 欧美嫩交一区二区三区 | 澳门成免费crm大全 狠狠躁夜夜躁av蜜臀少妇 | 日本爆乳j罩杯无码视频 | 成人免费在线视频网站 | 日日摸日日碰夜夜爽无 | 男人j捅女人p | 国产精品色片 | 亚洲精品国产乱码久久久1区 | 欧美日韩亚洲精品一区二区三区 | 潮喷失禁大喷水aⅴ无码 | 狠狠色噜噜狠狠狠狠色综合久AV | 亚洲午夜久久久影院 | 红杏成av人影院在线观看 | 日本特级黄色片 | 日韩中文字幕在线一区 | 亚洲日本VA在线视频观看 | 蝌蚪久久窝| 高潮视频在线播放 | 中国人妻被两个老外三p | 国产高清在线一区二区 | 国产成人自拍网 | 亚洲欧美综合精品成人网站 | 91久久国产综合久久91精品网站 | a免费毛片 | 女人下边被添全过程A片图片 | 国产中文日韩欧美 | 国产人成免费 | 在线视频精品一区 |