2017-02-22 9 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

を持つことができますので、これは本当にあなたが表示されたコードとは何の関係もありません。この 'サーバー'側のコードはListを返しますが、クライアントがそれをどうするかを決めるのはクライアントの責任です。 – jiveturkey

+0

私はAjaxで画像を取得するためにこのURLを使用しています。そのため、ユーザーがこのURLを入力しようとすると、ブラウザに空のページが表示されます。 –

答えて

0

あなたのAJAXリクエスト内で送信されるヘッダをチェックするだけの簡単なソリューションが必要な場合は、これが利用できない場合は、nullなどを返してください。 ResponseEntity<List<ProfilePic>>を返すこともできますが、ヘッダーが存在しない場合は、別のHTTPステータスで応答するか、または空の本文または2043(コンテンツなし)のResponseEntityスタティックメソッド/ビルダーを使用して応答します。

たとえば、XMLHttpRequestという値でヘッダX-Requested-Withが利用可能かどうかを確認できます。これは、AJAXが使用されたときに送信されるデフォルトのヘッダーの1つです(ただし、必ずしもそうではありません。送信された時刻と使用されていない時刻は正確にはわかりません - 使用されているjavascriptライブラリに依存します)。

ただし、これは安全なものではなく、誰かがこれらのヘッダーを偽って、とにかくページにアクセスできる可能性があります。

完全なAPIでこのような動作が必要な場合は、このヘッダーをチェックして利用可能な場合はdoFilterを続行するフィルタ内で試してください。

0

リクエストの本文にリストを戻していますが、そうしたくない場合は、ModelAndViewオブジェクトを作成し、それにオブジェクトリストを追加する必要があります。

例:

`@RequestMapping(値= "/写真/ {プロファイルID}"、方法= RequestMethod.GET、ヘッダー= "=アプリケーション/ JSONを受け入れる")

公共のModelAndViewのgetProfilePics(@ PathVariable( "profileId")BigInteger profileId){ ModelAndViewビュー= new ModelAndView( "html_to_be_returned"); view.addObject( "list"、practiceServices.getProfilePics(profileId)); リターンビュー }」

PS:私はこのコードをテストしていない、それは同じissue.`

関連する問題