2,775   jQuery JS

用户登录通过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

Your email address will not be published. Required fields are marked *