ajax後台重定向會返回什麼 ajax重定向跨域

2021-10-13 07:58:16 字數 883 閱讀 9086

瀏覽器如何對重定向?

當瀏覽器請求乙個位址,服務端返回302,瀏覽器會再次請求一次要重定向的url位址(頁面直接請求的響應的重定向位址,當前頁面是要跳轉的)。

如果用ajax發起一次請求(ajax發起的重定向,當前頁面不會跳轉),服務端返回302,重定向後url的網域名稱跟ajax請求的網域名稱相同,瀏覽器會再次請求重定向的url請求,請求成功會呼叫ajax的success函式,如果重定向url位址網域名稱跟ajax請求的網域名稱不同(跨域重定向),瀏覽器識別響應的response的location跨域了請求就會被阻止,失敗呼叫error方法。

如何跨域請求?

通過jsonp的方式:

ajax發起請求

var res=$.ajax({

type:"get",

url: "",/* */

crossdomain:true,/*-----------------------*/

success: function(data){

alert("success:"+data.name);

beforesend:function(){

complete:function(data,status){

同網域名稱服務端:

// 如果ajax請求這個服務端頁面,重定向位址非當前網域名稱,則瀏覽器會拒絕header("location:");//重定向位址跨域

// 採用ajax jsonp 請求時,在重定向頁面設定cookie,則瀏覽器會建立該跨域網域名稱下的cookie。setcookie("name","***x");

注意:ajax請的響應的重定向,當前頁面是不會跳轉的,瀏覽器頁面不會發生跳轉。

非ajax請求,也就是直接請求頁面,服務端重定向,瀏覽器是會識別將當前頁面跳轉到指定重定向頁面的,就算跨域也會跳轉的。

用ajax請求,在後台重定向失敗

今天發現,當使用ajax請求時,如果後台進行重定向到其他頁面時是無法成功的,只能在瀏覽器位址列輸入才能夠實現重定向。需要實現的功能是,後台閘道器攔截請求,看請求中是否存在token.如果不存在就跳轉到登入頁面。因為大多數請求都是使用ajax.一開始發現無法進行重定向,每次都是返回到ajax的結果處理...

ajax請求重定向

一 ajax重定向的問題。第一步 後端 改造。在後端 大部分情況都是 中判斷是否需要重定向。eg session過期判斷,當判斷session已經過期了,就先判斷此次請求是否是ajax的請求。方法 override 第二步 前段改造ajax屬性。通過 ajaxsetup 方法給ajax方法統一新增請...

什麼是重定向?

一 重定向 redirect 就是通過各種方法將各種網路請求重新定個方向轉到其它位置 如 網頁重定向 網域名稱的重定向 路由選擇的變化也是對資料報文經由路徑的一種重定向 二 1.調整 如改變網頁目錄結構 2.網頁被移到乙個新位址 3.網頁副檔名改變 如應用需要把.php改成.html或.shtml ...