2016-08-09 88 views
3

Okay, momentan zeige ich einige Daten auf einer HTML-Seite an. Ich habe jquery ajax Aufruf verwendet, die Daten von der spezifischen URL auf Feder MVC-Anwendung abrufen und Daten zurückgeben und dann Javascript verwenden, um Daten in der Tabelle anzuzeigen.Vermeiden Sie die Anzeige der von Spring @ResponseBody zurückgegebenen Daten im Browser

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

Nun, meine Frage ist, bekomme ich Daten wie ich über Ajax erforderlich, aber ich habe Daten im Browser angezeigt, wenn ich einfach durch url: www.example.com/students - wird JSON-Daten anzeigen .

Gibt es trotzdem zu vermeiden, diese Daten nicht im Browser anzuzeigen, sondern nur im Ajax-Aufruf?

Antwort

0

Wie auch immer, ich habe gerade die Antwort auf diese nach vielen googeln und ich dachte, teilen würde es gut sein. Also, im Grunde ist die Logik für diese Einschränkung, dass, wann immer ein Aufruf von ajax gemacht wird, ein spezieller Header namens X-Requested-With mit einem Wert von XMLHttpRequest an die Anfrage angehängt wird. Das einzige, was ich tun muss, ist diesen Parameter auf meinem Controller zu überprüfen.

@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; 
} 

können Sie den vollständigen Artikel in diesem Blog lesen. http://www.gmarwaha.com/blog/2009/06/27/is-it-an-ajax-request-or-a-normal-request/

0

Vielleicht fühlt sich an wie ein Problem [@JsonView (Views.PublicView.class)]. Sie überprüfen PublicView.class

Lesen Sie die Beschreibung. Link: 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; 
} 
+0

Vielen Dank für Ihre Informationen, aber leider arbeite ich nicht für mich und auch, ich denke, es hat nichts mit JsonView zu tun. –

+0

Ok. Ich denke, dass Sie Ihre Webanwendung gut arbeiten können. XD – Byeon0gam