易截截图软件、单文件、免安装、纯绿色、仅160KB

自定义ajax登录的时候出现的问题

我写了个简单的ajaxlogin登录
情况描述
打开2个页面
第一个页面是ajax登录的页面
第二个页面是登录后收保护的页面
登录第一个页面, 打开受保护的页面2, 在第一个页面登出   并刷新第2个页面由于已经登出就会出现跳到拦截页面CAS的login(这是已经把要跳转的页面存在session里了)
然后在第一个登录页面登录由于第一个页面时ajax请求,并且在session中已经存在他要跳转的页面,所以会返回该跳转的页面,ajax中设置了只能接受json对象因此就会出现登录error其实已经登入了
session中存的跳转URL的格式是
 
  session
 
  {SPRING_SECURITY_SAVED_REQUEST_KEY=SavedRequest[http://localhost:8080/AVerPortal/resourceAction/resourceIndex.action]}
其实这是个请求封装即对于页面http://localhost:8080/AVerPortal/resourceAction/resourceIndex.action的请求
由于是自定义ajaxlogin因此当有拦截目标的时候返回的是一个请求不是一个JSON对象。
解决方案:重写源代码中的AbstractProcessingFilter在验证成功时候使用的 RedirectUtils.sendRedirect类:这个方法顾名思义是像页面发送一个对服务器端页面的请求。response.sendRedirect(response.encodeRedirectURL(finalUrl));
改写成:
StringBuffer str = new StringBuffer();
    str.append("{");
    str.append("status: \"true\",");
    str.append("url: \"");
    str.append(finalUrl);
    str.append("\"}");
    response.getWriter().write(str.toString());
注意这里的我原来写成
StringBuffer str = new StringBuffer();
    str.append("{");
    str.append("status: true,");
    str.append("url: ");
    str.append(finalUrl);
    str.append("}");
    response.getWriter().write(str.toString());
结果在前台却得到
   {status: true,url:  http://localhost:8080/AVerPortalTest/resourceAction/resourceIndex.action}
{status: true,url:  http://localhost:8080/AVerPortalTest/resourceAction/resourceIndex.action}
2份JSON对象原因是因为JSON格式,正确格式如下
{
status:"true",
&nbs


相关文档:

Ajax示例

客户端代码:
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function sl(url){
......

AJAX使用中的注意事项

1、当改变服务器上的状态时应当使用POST方法。不同于GET,需要设置XML- HttpRequest对象的Content-Type首部,如下所示:
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
与GET不同,POST不会限制发送给服务器的净荷的大小,而且POST请求不能保证是幂等的。
你做的大多数请求可能都是G ......

Ajax对象XMLHttpRequest的常用属性,方法和事件

XMLHttpRequest对象是Ajax的核心,它有许多属性,方法和事件以便于脚本的处理和控制HTTP的请求与响应
下面是关于XMLHttpRequest对象的一些属性和方法介绍
1.readyState属性
  当XMLHttpRequest对象被创建后,readyState属性标识了当前对象所处的状态,具体的值代表意义如下:
  0   未初始化状态, ......

ajax复习

以我以前写的一个练习AJAX的会员注册页面为例。
下面这些主要是在输入用户名,光标离开输入框就进行判断该用户名是否合法的ajax方法。
(1)Xmlhttprequest AJAX之核心
function S_Xmlhttprequest(){
if(window.ActiveXObject) //IE
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
else if(window.XmlHTTPRe ......

asp.net ajax学习笔记

asp.net ajax学习笔记
 
一、          登堂入室——基本概念
http://blog.csdn.net/soldierluo/archive/2009/11/18/4830758.aspx
 
二、          小试身手——第一个Ajax程序
http://bl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号