【问题标题】:Asynchronous AJAX return after page loads页面加载后异步 AJAX 返回
【发布时间】:2019-03-04 08:38:48
【问题描述】:

我正在使用 Spring MVC,我只需要在 JSP 页面完全加载后对服务器进行一次异步调用。

我实际上拥有的是一个返回列表的控制器。我使用 AJAX 调用控制器。我的解决方案的问题是加载JSP页面后无法获取List的数据。

@RequestMapping(method=RequestMethod.GET, value="/myList")
public ModelAndView getSubView(Model model) 
{
  model.addAttribute("list", userServiceI.getAllUsers());
  return new ModelAndView( "myList" );
}
<script type="text/javascript">
  function ajaxPost() {
    $.ajax({
      type: "GET",
      url: "myList",
      success: function(list) {
        alert(list.get(0).name);
      }
    });
  }
</script>

有什么方法可以在页面加载后返回列表或如何异步加载?提前致谢。

【问题讨论】:

  • 你在哪里打电话给ajaxPost()?如果您在 document.readywindow.load 上调用它,您需要的将正常工作

标签: java jquery ajax spring-mvc


【解决方案1】:

只需返回用户列表而不是 ModelAndView 并在列表对象@ResponseBody 上进行注释。用户应该是可序列化的,您可以在 wiondwos.onload 或 document.ready 上调用 ajax 函数,它将异步加载列表。不要返回 ModelAndAiew,它用于在提交表单时在页面上重定向。

【讨论】:

    【解决方案2】:
    You need to return Json you can try it as follows 
    
    @RequestMapping(method=RequestMethod.GET, value="/myList")
    public String getSubView(Model model) 
    {
       JSONObject json = new JSONObject();
       return json.put("list", userServiceI.getAllUsers());  
    }
    
    or you can use @ResponseBody as 
    
    @RequestMapping(method=RequestMethod.GET, value="/myList")
    @ResponseBody
    public ArrayList getSubView(Model model) 
    {
      return userServiceI.getAllUsers();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-30
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      相关资源
      最近更新 更多