首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么页面重定向时jQuery getJSON函数不执行,而是直接调用?

为什么页面重定向时jQuery getJSON函数不执行,而是直接调用?
EN

Stack Overflow用户
提问于 2011-05-09 20:11:46
回答 1查看 1.3K关注 0票数 0

我有一个JSP页面,它随后调用了几个jQuery.getJSON()函数。我绘制了一些图表,所有的工作都很好。用户单击菜单项(URL)来调用此JSP页面。

$(document).ready(function()...中执行getJSON函数和处理脚本

但是,当用户在登录后被重定向到同一页面时,这些函数将不会执行。关于Ajax或jQuery,我想我肯定遗漏了一些基本的东西,但在网上搜索了几个小时后,我还是找不到答案。

下面是JSP文件:

代码语言:javascript
复制
<%@ 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>

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2011-05-10 16:06:40

好吧-是的,这是因为上下文路径是硬编码的。为了解决这个问题,我用src="<%=request.getContextPath()%>/js/jquery.js">替换了任何像../js/jquery.js这样的引用

现在它works..hope我没有浪费任何人的时间。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5936700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档