XMLHttpRequest与标准HttpRequest的不同点

来源:互联网 发布:淘宝卫浴架子 编辑:程序博客网 时间:2024/06/02 05:34

标准的HttpRequest做出一个同步的调用,必须等待服务器端返回响应,然后对页面进行加载(一般会呈递一个新的页面)。XMLHttpRequest可以发送异步请求,也可发送同步请求,但不会进行页面重新加载。当XMLHttpRequest进行请求时,目标页面会呈递特定的MIME类型数据(XML,JSON等)。XMLHttpRequest使用标准的javascript API对服务器端返回的响应进行解析,并且更新目标页面。


前几天,编写程序实现--当Session过期时,用户再次向服务器发送请求时,跳转到登陆页面--功能时,使用了如下代码:

response.sendRedirect("myprojectname/login");

上代码并没有得到预期效果,后来才明白,因为使用的是Ajax请求,XMLHttpRequest与标准HttpRequest不同,response也无法如HttpRequest般实现重定向功能。

只能想其他的解决办法:

服务器端片段代码:

if(request.getSession() == null || request.getSesion().getAttribute("user")  == null) // Session过期

map.put("operation_invalid", "invalid"); // 在Spring中可以使用Jackson,将返回的对象组装成json对象

else

{

......

}


客户端片段代码:

if(data.operation_invalid) // 如果Session过期,这里解析json可能会用到jquery的each方法;

window.location = "myprojectname/login"; //实现跳转


Good Bye, Guys.....