ホームページ >ウェブフロントエンド >jsチュートリアル >jquery は ajax を書き直し、load メソッドを使用して、permissions_jquery の送信と判定後にエラーを報告します。

jquery は ajax を書き直し、load メソッドを使用して、permissions_jquery の送信と判定後にエラーを報告します。

WBOY
WBOYオリジナル
2016-05-16 15:19:261228ブラウズ

これ以上はナンセンスです。コードを投稿させてください。

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);
};
});

書き換えの原則は次のとおりです。クロージャー関数はページ上のスクリプトの前に読み込まれるため、ここで $.ajax メソッドを直接書き換えることができます。

重要な点は、赤い部分のコンテンツを再実行する必要があるということです。再実行しないと、load メソッドを使用してページを読み込むときに「Uncaught TypeError: Cannot call method 'done' of unfineed.」というエラーが報告されます。 >

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。