为什么jQuery getJSON函数在页面重定向而不是直接调用时执行?
问题描述:
我有一个JSP页面,随后调用几个jQuery.getJSON()
函数。我呈现一些图表和所有作品都很好。用户点击一个菜单项(URL)来调用这个JSP页面。为什么jQuery getJSON函数在页面重定向而不是直接调用时执行?
的的getJSON功能和处理脚本执行中$(document).ready(function()...
然而,当登录后,用户被重定向到同一个页面,该功能将无法执行。我认为我必须在Ajax或jQuery方面缺少一些基本的东西,但是在几个小时的网络拖网之后我找不到答案。
这里的JSP文件:
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ page import="org.apache.struts.Globals" %>
<%
/*
* Dashboard Main Page
*
* Version History:
*
* Initial version.
*
*/
%>
<html:html locale="true">
<%@include file="/pages/include_skillsauction_header.html"%>
<body>
<head>
<script language="javascript" type="text/javascript">
function changeDivHTML()
{
document.getElementById('chart-container-1').innerHTML = "<img src='/apvbase/img/ajax-loader.gif'/>";
}
</script>
<script type="text/javascript" src="../../js/jquery.js"></script>
<script type="text/javascript" src="../../js/highcharts.js"></script>
<script type="text/javascript" src="../../js/themes/grid.js"></script>
<script>
$(document).ready(function()
{
$(function()
{
// ---
$.getJSON('../../JScriptUtils.do?method=getProjectRisks', function(arr)
{
chartRisks = new Highcharts.Chart({
chart: {
renderTo: 'chart-container-1',
defaultSeriesType: 'column',
borderWidth: 2
},
title: {
text: 'Project Risk Profile'
},
subtitle: {
text: 'All Open Risks by Project'
},
tooltip: {
formatter: function() {
return ''+
this.x +': '+ this.y +' logins';
}
},
xAxis:
{
categories: arr.name,
labels: {
rotation: -45,
align: 'right',
style: {
font: 'normal 8px Verdana, sans-serif'
}
}},
yAxis: {
min: 0,
max: 50,
title: {
text: 'Risks'
},
tickInterval: 10
},
series: [
{ data: arr.data,
dataLabels: {
enabled: true,
formatter: function() {
return this.y;
}
},
name: 'Risks Raised'
}
]
});
});
// +++
}); // function()
}); // ready()
</script>
</head>
<div id="document">
<%@include file="/pages/include_recruiter_header.jsp"%>
<div id="main">
<div id="content-section">
<div id="contentsNoSideBar">
<!-- Display Login details -->
<h2><bean:message key="recruiter.provFeedback.heading"/></h2>
<p>
<table>
</tr>
<td>
<div id="chart-container-1" style="width: 34%; height: 300px"></div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="siteInfo">
<%@include file="/pages/include_standard_footer.jsp"%>
</div>
</div>
<script>
// Display the spinner icon until ready ..
changeDivHTML();
</script>
</body>
</html:html>
任何帮助是极大的赞赏。
答
好的 - 是的,这是因为上下文路径被硬编码。为了解决这个问题,我用../js/jquery.js
替换了所有的参考文件src="<%=request.getContextPath()%>/js/jquery.js">
现在,它工作..hope我没有浪费任何人的时间。
这可能是最好的,如果你显示有问题的代码。 – 2011-05-09 12:15:18
您是否在登录后使用SSL(https)? – Simeon 2011-05-09 12:31:49
@Pekka和@Simeon - 感谢您的回复。这是JSP文件。如前所述,如果直接调用所有作品都很漂亮。只有当我从我的(java struts)操作类重定向到挂起的这个页面时。无论SSL与否,行为都是相同的。由于这里的编辑面板没有足够的空间,我无法包含文件! – Ganztoll 2011-05-09 21:26:51