2017-02-22 184 views
0

我有一個請求映射,它返回json數據庫中的列表。如果訪問者在瀏覽器中輸入確切的URL,那麼這個頁面是否可以爲空?當輸入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

我正在使用此網址以便使用Ajax獲取圖片。這就是爲什麼如果用戶試圖輸入這個URL,那麼瀏覽器應該顯示一個空白頁面。 –

回答

0

如果您只想快速解決方案,請檢查將在您的AJAX請求中發送的標頭。如果這不可用,只需返回null或其他。您還可以返回ResponseEntity<List<ProfilePic>>,如果標題不存在,則使用ResponseEntity靜態方法/構建器以不同的HTTP狀態或只使用空主體或使用204(不含內容)。

例如,您可以檢查標頭X-Requested-With是否可用價值XMLHttpRequest。這是使用AJAX時會發送的默認標題之一(但並非總是;我不知道它何時發送,什麼時候不發送 - 可能取決於使用的JavaScript庫)。

但請記住:這是沒有什麼安全的,有人可以僞造這些標題並無論如何都可以訪問該頁面。

如果您希望爲您的完整API使用此類行爲,請在檢查此標頭的過濾器中嘗試該過濾器,如果可用,請繼續doFilter,否則停止響應。

0

您正在返回請求主體列表,如果您不喜歡這樣做,您應該創建一個ModelAndView對象並將對象列表添加到它。

實施例:

`@RequestMapping(值= 「/圖片/ {簡檔}」,方法= RequestMethod.GET,標頭= 「接受=應用/ JSON」)

公共的ModelAndView getProfilePics(@ PathVariable(「profileId」)BigInteger profileId){ ModelAndView view = new ModelAndView(「html_to_be_returned」); view.addObject(「list」,practiceServices.getProfilePics(profileId)); 返回查看 }」

PS:我還沒有測試此代碼,以便它可以有相同的issue.`