【问题标题】:Avoid displaying returned data from Spring @ResponseBody on browser避免在浏览器上显示 Spring @ResponseBody 返回的数据
【发布时间】:2016-12-15 00:11:13
【问题描述】:

好的,目前我正在一个 html 页面上显示一些数据。我使用了 jquery ajax 调用,它从 Spring MVC 应用程序上的特定 url 获取数据并返回数据,然后使用 javascript 在表中显示数据。

@RequestMapping(value = "/students", method = RequestMethod.GET)
@ResponseBody
@JsonView(Views.PublicView.class)
public ArrayList<Student> getAdminsList(HttpSession session) {
    //return data
}

现在,我的问题是,我通过 ajax 获取所需的数据,但如果我只是通过 url:www.example.com/students,我确实会在浏览器中显示数据 - 将显示 JSON 数据。

有没有办法避免在浏览器中而不是在 ajax 调用中显示这些数据?

【问题讨论】:

    标签: javascript jquery http spring-mvc url


    【解决方案1】:

    无论如何,经过大量谷歌搜索后,我才找到了答案,我认为分享它会是一件好事。所以,基本上这个限制的逻辑是,每当从 ajax 进行调用时,一个名为 X-Requested-With 且值为 XMLHttpRequest 的特殊标头会附加到请求中。我唯一要做的就是在我的控制器上检查这个参数。

    @RequestMapping(value = "/accounts", method = RequestMethod.GET)
    @JsonView(View.Accounts.class)
    public List<Account> getAccounts() throws JsonProcessingException {
            if(!"XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){
                log.info("Request is from browser.");
                return null;
            }
        List<Account> accounts = accountService.findAccounts();
    
        return accounts;
    }
    

    您可以在此博客上阅读全文。 http://www.gmarwaha.com/blog/2009/06/27/is-it-an-ajax-request-or-a-normal-request/

    【讨论】:

      【解决方案2】:

      也许感觉像是一个问题[@JsonView(Views.PublicView.class)]。你检查 PublicView.class

      阅读说明。链接:enter link description here

      @RequestMapping(value = "/accounts", method = RequestMethod.GET)
      @JsonView(View.Accounts.class)
      public List<Account> getAccounts() throws JsonProcessingException {
          List<Account> accounts = accountService.findAccounts();
      
          return accounts;
      }
      

      【讨论】:

      • 非常感谢您提供的信息,但不幸的是我不为我工作,而且我认为它与 JsonView 没有任何关系。
      • 好的。我认为你可以很好地工作你的网络应用程序。 XD
      猜你喜欢
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2019-08-28
      • 1970-01-01
      • 2017-06-01
      • 2013-07-22
      相关资源
      最近更新 更多