Jquery ajax非同步請求帶來的問題及解決方案
阿新 • • 發佈:2019-01-07
考慮一段簡單的程式碼
$.post( "Handle.ashx" );
window.location.href =
"Login.aspx" ;
|
Handle.ashx的作用是清除Session資料,亦即把使用者登出掉。
這裡就出現一個問題了。
總之最後的效果是,使用者的確重定向到了Login.aspx,但是Handle.ashx清除Session的效果沒有執行。
解決方案很二,有兩種方法:
方法一:
把所有的後續javascript語句放到jquery的成功回撥函式裡面去
方法二:
把jquery的執行方式改為同步
function ExtAjax(pmts) { var
ajaxval = null ;
var
params = "ajax=true&"
pmts; //URL引數
$.ajax({
url:
'xueit-Test.aspx' ,
//接收頁面
type:
'post' ,
//POST方式傳送資料
async:
false ,
//ajax同步
data:
params ,
success: function(msg) {
ajaxval = msg;
}
});
return
ajaxval;
}
|
$.ajaxSetup({
async:
false
});
|
太坑爹了!如果不知道是這個原因,真不知道要除錯到什麼時候啊啊啊啊啊啊啊啊啊!!!
原文地址:http://www.cnblogs.com/dabaopku/archive/2011/05/31/2064895.html