2017-02-22 16 views
0

У меня есть карта запроса, которая возвращает список из базы данных в json. Возможно ли, если посетитель войдет в точный URL-адрес в браузере, страница будет пустой?Spring Show Empty Page При вводе GET Url

@RequestMapping(value = "/pics/{profileId}", method = RequestMethod.GET, headers = "Accept=application/json") 
@ResponseBody 
public List<ProfilePic> getProfilePics(@PathVariable("profileId") BigInteger profileId) { 
    return practiceServices.getProfilePics(profileId); 
} 

если посетитель вводит URL http://localhost:8080/practiceProject/pics/10, страница будет отображаться в списке, но я не хочу посетителей, чтобы увидеть его. Я хочу, чтобы в браузере отображалась пустая страница. Является ли это возможным?

+0

Это действительно не имеет ничего общего с кодом вы показываете. Этот «серверный» код возвращает список, но зависит от вашего клиента, чтобы решить, что с ним делать. – jiveturkey

+0

Я использую этот url, чтобы получить фотографии с Ajax. Поэтому, если пользователь пытается ввести этот URL-адрес, браузер должен показать пустую страницу. –

ответ

0

Если вы просто хотите, чтобы быстрое решение проверяло заголовок, который будет отправлен в ваших запросах AJAX. Если это не доступно, просто верните null или что угодно. Вы также можете вернуть ResponseEntity<List<ProfilePic>>, а в случае отсутствия заголовка отвечать другим статусом HTTP или просто с пустым телом или 204 (без содержимого), используя статические методы/построитель ResponseEntity10.

Например, вы можете проверить, доступен ли заголовок X-Requested-With со значением XMLHttpRequest. Это один из заголовков по умолчанию, которые будут отправляться при использовании AJAX (но не всегда, я точно не знаю, когда он отправлен, а когда нет - возможно, это зависит от используемой библиотеки javascript).

Но имейте в виду: это ничто не безопасно, кто-то может подделать эти заголовки и получить доступ к странице в любом случае.

Если вы хотите, чтобы такое поведение было выполнено для вашего полного API, попробуйте его в пределах фильтра, который проверяет этот заголовок, и, если есть, продолжайте с doFilter, в противном случае остановите и ничего не ответьте.

0

Вы возвращаете список в теле запроса, если вам не нравится это делать, вы должны создать объект ModelAndView и добавить к нему список объектов.

Пример:

`@RequestMapping (значение = "/ фото/{ProfileID}", метод = RequestMethod.GET, заголовки = "Accept = приложения/JSON")

общественных ModelAndView getProfilePics (@ PathVariable ("profileId") BigInteger profileId) { ModelAndView view = new ModelAndView ("html_to_be_returned"); view.addObject ("list", practiceServices.getProfilePics (profileId)); вида возвращения }»

PS: Я не проверял этот код, он может иметь такое же issue.`