2012-09-19 185 views
0

我一直在试图从与该控制器没有关联的jsp页面调用不同的控制器。 我想要做的事情:jsp从控制器A加载,加载页面后我想在不改变页面位置的情况下调用控制器B.Ajax调用不同的控制器

我已经尝试了一些东西,但还没有成功。

Ajax的尝试:

$(window).load(function() { 
    var url = $('#analyticLog').attr('href'); 

    $.ajax({ 
     type: "POST", 
     url: url, 
     success: function(html) 
     { 
       $("#analyticLogAjax").replaceWith($("#analyticLogAjax",$(html))); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      alert(xhr.status); 
      alert(thrownError); 
      } 
    }); 
}); 

window.location的尝试:

$(window).load(function() { 
     window.location = $('#analyticLog').attr('href'); 

}); 

有一个在被引用的锚每个指向从该控制器被映射到该动作。我还玩过处理我们的动作请求和映射的视图控制器,希望启用空视图不引用新的“视图”。但后来我的500支票被抓到是通过的那种看法。

我知道这是各地的一种。但如果我能找到一种方法来调用我的课程而不改变视图,那将是非常有益的。

+0

我加了这些作品作为参考,这可能会变成是一个Java问题,如果我的视图控制器需要改造。真正的问题是我不知道解决方案可能来自哪里。我也有一些格式问题,并不打算将它们视为语言。 – littlevahn

+0

你想在controllerB中做什么?获取一些数据? –

+0

基本上是的。我真的只需要将来自前端的数据传递给控制器​​B. B不需要传回任何东西。它只需要做自己的工作。阿贾克斯片正在重建一个虚拟的div。我知道贫民窟,但我越来越绝望。 – littlevahn

回答

1

简单的设置禄控制器的URL

$(window).load(function() { 
    var url = $('#analyticLog').attr('href'); 
    loc = /* the URL of the controller you wish to post to */; 
    $.ajax({ 
     type: "POST", 
     url: loc, 
     success: function(html) 
     { 
       $("#analyticLogAjax").replaceWith($("#analyticLogAjax",$(html))); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      alert(xhr.status); 
      alert(thrownError); 
      } 
    }); 
}); 

注:除非控制器特别希望post你应该使用get

+0

哇谢谢。我没有意识到你必须使用loc var key。 – littlevahn

+0

loc是您在代码中使用的。如果'$('#analyticLog')。attr('href')'持有可以直接指定给url属性的值 –