做项目的时候遇到这个问题,页面中有很多的ajax请求,如果用户未登录,其他连接就不请求,让用户登录后在触发请求。
js代码如下:
使用$.ajaxPrefilter函数,这个函数用来预先处理AJAX参数选项,例如更改请求方式、更改请求头等等。ajaxPrefilter函数详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $.ajaxPrefilter(function (options, originalOptions, jqXHR) { if ($.cookie("authToken") == null) { if (options.url != "/monitorfixed/login") { jqXHR.abort(); } } if (options.url) { var symbol = "?"; if (options.url.indexOf("?") !== -1) { symbol = "&"; } if (options.url && options.url.startWith("/")) { options.url = "/api" + options.url + symbol + "stp=" + new Date().getTime(); } } });
|
如果没检测到Cookie,请求的链接不是/monitorfixed/login
, 终止请求。
登录成功后,写入cookie,再次刷新页面 window.location.reload()
,请求其他资源,完成!