1. 程式人生 > >response.sendRedirect頁面跳轉無效,原因是在於ajax請求後臺

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

專案想要在後臺進行頁面跳轉,用了response.sendRedirect,但是沒反應,debug了一下,發現執行到重定向的時候沒反應,當時就是一臉懵逼的,怎麼重定向沒有進行要頁面跳轉呢?到網上搜了下原因,

原因在於: 
(從網上摘錄) 
Ajax只是利用指令碼訪問對應url獲取資料而已,不能做除了獲取返回資料以外的其它動作了。所以瀏覽器端是不會發起重定向的。 
1)正常的http url請求,只有瀏覽器和伺服器兩個參與者。瀏覽器端發起一個http請求,伺服器端處理後發起一個重定向,瀏覽器端從response中獲取到重定向地址,發起另一個http url請求。也就是說,瀏覽器會按照response中的內容進行響應(如重定向),這是瀏覽器的功能決定的就得響應。 
2)Ajax請求,參與者就有三個即ajax、客戶端、伺服器,ajax處於客戶端和伺服器兩者之間。過程是客戶端發起一個ajax請求,伺服器端處理後,如果發起一個重定向,然後ajax會怎麼辦呢?它只會獲取剛才請求返回的資料,其他的任何動作一概不去做,ajax是這麼做的(ajax功能就是這麼設定的,ajax框架原始碼也是這麼寫的)。 
也就是說,引入了ajax之後,ajax就插在瀏覽器和伺服器之間了,伺服器給瀏覽器的response被ajax攔截了,但是ajax本身卻什麼都不做,也不轉達。

上面說的很清楚了博主也就不扯犢子了,我就直接說我的解決方法吧,

既然在後臺不能使用重定向進行頁面跳轉,那就直接把你要跳轉的連結通過ajax回傳到前臺,然後直接通過前臺進行頁面跳轉就行了,

當然,這樣的也有不好的地方,就是請求時間有點長。

這邊我原本就是這樣寫的,為什麼我當時想著要在後臺進行重定向跳轉頁面呢?

是因為我在前臺跳轉連結的時候,請求了太多次後臺介面,當時想著能不能再後臺進行重定向跳轉,能減少請求後臺介面的次數,然後訪問效率會快些,結果繞了一圈,還是又回來了,

欲哭無淚啊~~~

相關推薦

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

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

【iOS】使用URLNavigator進行頁面push頁面無效

最近在專案中使用URLNavigator遇到了點小坑,使用xcode預設配置新建project,照著demo敲了一通發現不起作用,最後發現原因是預設配置檔案Info.plist中,配置了Main storyboard file base name 即下圖所示 這個配置會影響到Ap

jsp response.sendRedirect原因分析及解決

最近做專案時遇到一個問題,明明加了response.sendRedirect() ,系統也執行了,但是它就是不跳轉;最後在網上找到原因如下:  首先我們要明白用response.sendRedirect做轉向的原理,它其實是向瀏覽器傳送一個特殊的Header,然後由瀏覽器來做轉向,轉到指定的頁面,所以用se

微信小程式頁面無效

wx.navigateTo(OBJECT) 不會銷燬當前頁面,僅僅是將其hide,使用wx.navigateBack可以返回到原頁面。 wx.redirectTo(OBJECT) 銷燬當前頁面,跳轉到應用內的其他頁面。 我們有時候會發現,其他的地方都好好的能跳轉,可是為啥突然就無效那呢? 原因: 檢查你

談談request和response頁面

jsp或Servlet都會用到頁面跳轉,可以用request.getRequestDispatcher("p3.jsp").forward(request,response);這種方法稱為轉發,位址列上的URL不會改變;response.sendRedirect("p3.js

android如何在頁面讓使用者不能通過返回鍵回到原頁面

Intent intent=new Intent(ActivityA.this,ActivityB.class); startActivity(intent); ActivityA.this.finish(); 順便,遮蔽返回鍵的方法: @Override

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

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

ngxin做http強制https介面的POST請求變成GET

http強制跳轉https出現了問題。修改nginx配置如下即可解決: server { listen 80; server_name *.snsprj.cn; return 307 https://$host$request_uri; } 301 Mov

react路由、引數傳遞和Ajax請求API資料

我專案完整程式碼請進入我的github“星座運勢”github上原始碼地址歡迎點一下star(^_^),在這個專案中使用了react框架元件化開發、react路由實現介面跳轉和引數傳遞,此外我所使用的資料來源於ShowAPI介面。 一下為路由部分程式碼(app

JSP中頁面response.sendRedirect()和request.getRequestDispatcher()的區別

Java Web開發中,採用MVC模式的時候,在控制器完成模型的呼叫之後會選擇介面對使用者響應,用常有2種方式 1,通過response物件的sendRedirect方法重定向: response.

jquery頁面導航變色刷新後依然存在

ctu contacts new each menu [0 oca function == jquery代碼: <script> $(document).ready(function () { //$(".me

頁面刷新導航欄高亮顯示前的點擊位置

欄目 storage 加載 null 隱藏 nload 二級 date split 需求:比如有一個二級或三四級的菜單欄,頁面不跳轉時實現高亮顯示是很容易的,網上有很多這樣的素材。但是頁面一跳轉,新頁面可就記不住你在上一個頁面點擊的位置了,也就不可能高亮顯示。並且很多時候,

兩個頁面傳中文參數中文出現亂碼解決方法

ber dex arm1 ring ces lin cat 兩個 .html // encodeURI 編碼 window.location.href(encodeURI("zhongji2.html"+"?"+"parm1="+parm1+"&parm2="+pa

頁面添加返回和動畫(仿app) 只對單頁面有用我用的是angualr有不會的可以私信問我。

hist page func margin consola color -s tar pla p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #596972 } p.p2 { mar

<問題解決10>使用帶有框架的頁面到登錄頁面登錄頁面只顯示在子框架中未能鋪滿整個瀏覽器--解決方案如下:

頁面 tro color 過期 描述 例如 ren 方案 col 問題描述:     使用帶有框架的頁面跳轉到登錄頁面時,登錄頁面只顯示在子框架中,未能鋪滿整個瀏覽器,例如:     當登錄信息過期時,點擊左邊的菜單欄會讓登錄頁面顯示在右邊的框架中,而不能鋪滿整個瀏覽器  

【前臺】整個項目實現單頁面拋棄iframe

點擊事件 true charset req 做到 value images tro Language 即如下: 【想做到點擊nav側邊欄,僅替換右邊div中的內容,而不是跳轉到新的頁面,這樣的話,其實整個項目中就只有一個完整的頁面,其他的頁面均只寫<body>內

利用cookie實現刷新頁面左側菜單點擊後狀態保持不變。

coo spl 失效 不變 find sco a標簽 左側菜單 cookie 是一個後臺關系系統,後臺是phyton,後臺把左側菜單都是利用a標簽進行跳轉,導致菜單點擊狀態在頁面刷新後失效,用戶體驗不好,被要求改掉。 查了一些資料。利用cookie終於搞定了這個大問題。主要

頁面A到BB再返回A時自動定位到離開A時的位置

ID 重新 before setview one attr UNC -- ntb <template> <div class="hello" @scroll="scrollLoad" id="myScrollBox"> <h

form表單可以提交阻止頁面

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body&g

localStorge----前端頁面傳遞資料無需互動

需求 有時候我們想僅僅在前端頁面href跳轉到另一個頁面,不用後臺互動,但是想傳一些資料給新頁面顯示(僅前端實現)。 案例 例如這些顯示不全的單元格資訊,想要點選開啟一個新網頁詳細顯示,但是不會再和後臺互動那麼麻煩。 解決方法 — localStorge 使用l