在
PHP我会做
if (isset($_COOKIE['user']) && $_COOKIE['user'] == $valueFromDb) echo 'logged';
但是在javascript中我该怎么检查呢?
谢谢
解决方法
没有向服务器发出请求就没有可靠的方法来执行此操作,因为会话可能已在服务器端过期.在一个项目中,我做了以下,不完美的方式:
checkAuth() { var logged = (function() { var isLogged = null; $.ajax({ 'async': false,'global': false,'url': '/user/isLogged/','success': function(resp) { isLogged = (resp === "1"); } }); return isLogged; })(); return logged; }
我说不完美,因为它会产生暂时锁定浏览器的同步请求.它的优势在于checkAuth()可以从客户端应用程序的任何部分可靠地调用,因为它强制浏览器在继续执行JS代码之前等待结果,但这就是它.
替代的,异步(非锁定)方法是做这样的事情:
$.ajax({ 'url': '/user/isLogged/','success': function(resp) { if(resp === "1") { // do your thing here,no need // for async: false } } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。