老熟女激烈的高潮_日韩一级黄色录像_亚洲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
主站蜘蛛池模板: 品色堂永远免费论坛 | 精品亚洲成a人片在线观看 国产老女人乱淫免费 | 国产成人yy精品在线 | 国产v日韩v欧美v在线观看 | 三及片大全网日本 | 亚洲大尺度无码无码专区 | 91精品一区二区三区在线 | 中文字幕人妻丝袜乱一区三区 | 久久曰曰 | 新白娘子传奇50集免费赵雅芝版 | 国产精品福利区一区二区三区四区 | 手机a级毛片免费观看 | 国产白丝jk捆绑束缚调教视频 | 老师穿超短包臀裙办公室爆乳 | 制服丝袜国产AV无码 | 2021亚洲国产精品无码 | 亚洲色无码中文字幕伊人 | 九九99靖品 | 嫩草影院黄 | 亚洲伦理自拍 | 精品少妇一区二区三区免费观 | 久久99精 | 亚洲免费av网站 | 草草影院网址 | 啊轻点灬大ji巴太粗太长了日本 | 一区二区三区不卡视频在线观看 | 男人女人真曰批视频播放在线 | 九七视频在线观看 | 性色a∨精品高清在线观看 久久久a | 国产亚洲精品成人AA片在线播 | 欧美在线3区| 中文字幕一区二区三区久久 | 被义子侵犯漂亮人妻HD | 古代春交性姿势K8 | 色一情一乱一伦一区二区三区日本 | 久久久久成人精品亚洲国产 | 亚洲精品美女久久久 | 91草在线视频 | 佐山爱中文字幕aⅴ在线 | 国产乱人伦偷精品视频不卡 | 一区二区无码免费视频网站 |