【问题标题】:Ajax call to different controller对不同控制器的 Ajax 调用
【发布时间】:2012-09-19 17:13:20
【问题描述】:

我一直在尝试从与该控制器无关的 jsp 页面调用不同的控制器。 我正在尝试做的事情:jsp 从控制器 A 加载,页面加载后我想在不更改页面位置的情况下调用控制器 B。

我尝试了很多方法,但都没有成功。

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 支票被抓到是通过了那个观点。

我知道这到处都是。但是,如果我能找到一种在不改变视图的情况下调用我的班级的方法,那将是非常有益的。

【问题讨论】:

  • 我添加了这些片段作为参考,如果我的视图控制器需要修改,这可能是一个 java 问题。真正的问题是我不知道解决方案可能来自哪里。我还遇到了一些格式问题,并不打算将它们视为语言。
  • 你想在控制器 B 中做什么?获取一些数据?
  • 基本上是的。我真的只需要将前端的数据传递给控制器​​ B。B 不需要传回任何东西。它只需要做自己的工作。 Ajax 部分正在重新填充一个虚拟 div。贫民区我知道,但我越来越绝望了。

标签: java jquery ajax spring


【解决方案1】:

只需将 loc 设置为控制器的 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

【讨论】:

  • 哇,谢谢。我没有意识到你必须使用 loc var 键。
  • loc 是您在代码中使用的。如果 $('#analyticLog').attr('href') 持有该值,您可以将其直接分配给 url 属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多