从会话中尝试访问变量,在Jquery成功或错误块中请求...但是 不明白它显示为null,alert中的数据有完整的HTML页面,帮助会很明显.. :)
<pre><code>$( document ).ready(function() {
$("#becameAfan").click(function(){
$.ajax({
type: 'GET',
url:'subscribeTo.action',
dataType:'text',
success: function(data){
var status1=<%=request.getAttribute("verified")%>//null
var status=<%=session.getAttribute("verified")%>//its null
alert(data); //its giving xmlhttp object(entire page)
$("#fan").fancybox({
'enableEscapeButton' :true,
'hideOnOverlayClick' : true,
'showCloseButton' :true
}).trigger('click');
},
error: function(data)
{
var status=<%=session.getAttribute("verified")%>//its null
alert(data); //its giving xmlhttp object(entire page)
$.fancybox({
href: "FanLoginPage.jsp",
type: "iframe",
'hideOnOverlayClick' : false,
'enableEscapeButton' : false,
'showCloseButton' :true
});
}
});
return false;
});});
<pre><code>
INSIDE ACTION CLASS:
session.setAttribute("status","verified");
request.setAttribute("status","verified");
PrintWriter out=response.getWriter();
out.print("SUCCESS");
return SUCCESS;</pre></code>
答案 0 :(得分:0)
有几个问题。第一个是当你的jsp文件被提供时,那就是<%=request.getAttribute("verified")%>
将被执行的时候。在subscribeTo.action Action中设置属性的代码当时不会被触发。
可以通过查看您的信息来源来验证这一点。在激活ajax调用的成功方法之前,您将看到null
。
不幸的是,您的javascript代码无法访问会话或请求对象。您需要在success
方法可以查找的操作中返回响应中的内容。
此外,session.setAttribute
和request.setAttribute
方法采用第一个参数的属性名称和第二个参数的值。 session.getAttribute
和request.getAttribute
获取属性名称。因此,您要设置名为status的属性,但要获取名为“Verified”的属性。
<%=request.getAttribute("verified")%>