首頁 >web前端 >js教程 >jquery 重寫 ajax提交並判斷權限後 使用load方法報錯解決方法_jquery

jquery 重寫 ajax提交並判斷權限後 使用load方法報錯解決方法_jquery

WBOY
WBOY原創
2016-05-16 15:19:261242瀏覽

廢話不多說了,直接給大家貼程式碼了。

jQuery(function ($) {
// 备份jquery的ajax方法 
var _ajax = $.ajax;
// 重写ajax方法,先判断登录在执行success函数 
$.ajax = function (opt) {
var _success = opt && opt.success || function (a, b) { };
var _opt = $.extend(opt, {
success: function (data, textStatus) {
// 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要找到data是登录页的证据(标记) 
if ((typeof data) == 'string' && data.indexOf('shangjiaAjaxExtend') != -1) {
window.location.href = 'http://' + window.location.host + '/S/BusiLogin/Index';
return;
} else {
_success(data, textStatus);
}
}
});
return _ajax(_opt);
};
});

重寫原理為:由於閉包函數先於頁面上script加載,所以在此可以直接複寫$.ajax方法.

重點是紅色部分內容一定要retrun 否則在使用load方法載入頁面時報錯 “Uncaught TypeError: Cannot call method 'done' of undefined.”

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn