Plus de bêtises, laissez-moi vous poster le code.
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); }; });
Le principe de la réécriture est le suivant : puisque la fonction de fermeture est chargée avant le script sur la page, la méthode $.ajax peut être directement réécrite ici.
Le point clé est que la partie rouge doit être renvoyée, sinon un message d'erreur apparaîtra lors de l'utilisation de la méthode de chargement pour charger la page. "Uncaught TypeError : Impossible d'appeler la méthode 'done' de undefined."