无法在jquery ajax中访问String变量

时间:2014-04-25 06:51:00

标签: javascript jquery ajax jsp

从会话中尝试访问变量,在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>

1 个答案:

答案 0 :(得分:0)

有几个问题。第一个是当你的jsp文件被提供时,那就是<%=request.getAttribute("verified")%>将被执行的时候。在subscribeTo.action Action中设置属性的代码当时不会被触发。

可以通过查看您的信息来源来验证这一点。在激活ajax调用的成功方法之前,您将看到null

不幸的是,您的javascript代码无法访问会话或请求对象。您需要在success方法可以查找的操作中返回响应中的内容。

此外,session.setAttributerequest.setAttribute方法采用第一个参数的属性名称和第二个参数的值。 session.getAttributerequest.getAttribute获取属性名称。因此,您要设置名为status的属性,但要获取名为“Verified”的属性。

<%=request.getAttribute("verified")%>