Javascript 无法在jquery ajax中访问字符串变量
正在尝试从会话、Jquery成功或错误块中的请求访问变量…但Javascript 无法在jquery ajax中访问字符串变量,javascript,jquery,ajax,jsp,Javascript,Jquery,Ajax,Jsp,正在尝试从会话、Jquery成功或错误块中的请求访问变量…但 不理解它显示为空,警报中的数据有完整的HTML页面,请提供帮助:) $(文档).ready(函数(){ $(“#becameAfan”)。单击(函数(){ $.ajax({ 键入:“GET”, url:'subscribeTo.action', 数据类型:'text', 成功:功能(数据){ var status1=//null var status=//其值为null 警报(数据);//其给定的xmlhttp对象(整个页面) $(“
不理解它显示为空,警报中的数据有完整的HTML页面,请提供帮助:)
$(文档).ready(函数(){
$(“#becameAfan”)。单击(函数(){
$.ajax({
键入:“GET”,
url:'subscribeTo.action',
数据类型:'text',
成功:功能(数据){
var status1=//null
var status=//其值为null
警报(数据);//其给定的xmlhttp对象(整个页面)
$(“#风扇”).fancybox({
“enableEscapeButton”:true,
“HideonOvercyclick”:对,
“showCloseButton”:真
}).trigger('click');
},
错误:函数(数据)
{
var status=//其值为null
警报(数据);//其给定的xmlhttp对象(整个页面)
$.fancybox({
href:“FanLoginPage.jsp”,
键入:“iframe”,
“HideOnOvercyclick”:false,
“enableEscapeButton”:false,
“showCloseButton”:真
});
}
});
返回false;
});});
内部行动类:
session.setAttribute(“状态”、“已验证”);
setAttribute(“状态”、“已验证”);
PrintWriter out=response.getWriter();
打印(“成功”);
回归成功代码>
有几个问题。第一个是当jsp文件发出时,也就是执行
的时候。在subscribeTo.action中设置属性的代码此时不会启动
这可以通过查看页面的源代码来验证。在ajax调用的success方法触发之前,您将看到null
s
不幸的是,javascript代码将无法访问会话或请求对象。您需要在操作的响应中返回success
方法可以查找的内容
另外,session.setAttribute
和request.setAttribute
方法将属性名称作为第一个参数,值作为第二个参数session.getAttribute
和request.getAttribute
获取属性名称。因此,您设置了一个名为status的属性,但得到了一个名为verified的属性
尝试使用${request.verified}和${session.verified}将其放在单引号中,例如:''Oops,它正在测试我正在访问,但仍然如您所说的那样为null。。代码将无权访问会话或请求对象。您需要在操作的响应中返回成功方法可以查找的内容。这个技巧奏效了…我在加载页面之前验证了用户,这很有意义…)谢谢你的建议很高兴你找到了答案!
<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>
<%=request.getAttribute("verified")%>