用户登录通过ajax来校验,后台校验通过后直接跳转至首页
我满以为简单跳转却折腾了好一会,因为ajax请求方式,后台直接跳转是不行的
详细解析
1,后台通过response.sendRedirect来跳转,这个原理是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面
2,但是ajax请求实际上就是通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面
换句话说,ajax不会像浏览器那样根据header来跳转,需要我们手动判断,通过location.href来跳转
所以解决方法就是
1,后台返回跳转的URL
var url = config.url.host+"/"; var data = { redirect : url }; res.json(data);
2,ajax请求判断后台服务器返回进行跳转
success: function(data){ if(data.error){ showAlertNotice(data.error); }else if(data.redirect){ location.href = data.redirect; } },
Leave a Reply