6

Play Framework 1.xでは、メソッドを尋ねることでリクエストがAJAXであるかどうかをすばやく知ることができましたが、Play2でrequest.isAjax()は見つかりません。

代替手段は何ですか、またはこの方法はどこにありますか?

4

3 に答える 3

5

JQuery for Ajaxを使用する場合、次のリクエストヘッダーが設定されます。

 X-Requested-With: XMLHttpRequest

後でAjax経由で呼び出しが行われたかどうかをテストするためにアクセスできます。

于 2012-04-27T13:21:45.460 に答える
4

これをメソッドとして定義し、コントローラーで使用できます。

def isAjax[A](implicit request : Request[A]) = {
  request.headers.get("X-Requested-With") == Some("XMLHttpRequest")
}
于 2013-05-03T09:53:31.947 に答える
2

これは、Scala を使用しない人 (私のように) のための単純な Java 実装です。

/**
 * Check if the request was made via Ajax or not
 * @return
 */
public static Boolean isAjax() {
    String requestWithHeader = "X-Requested-With";
    String requestWithHeaderValueForAjax = "XMLHttpRequest";

    String[] value = request().headers().get(requestWithHeader);
    return
        value != null &&
        value.length > 0 &&
        value[0].equals(requestWithHeaderValueForAjax);
}
于 2014-03-25T17:58:16.763 に答える