Play Framework 2.0中的isAjax()方法在哪里?

时间:2012-04-26 09:09:43

标签: ajax playframework-2.0

在Play Framework 1.x中,我们可以通过询问request.isAjax()方法快速了解请求是否为AJAX,但我无法在Play 2中找到它。

这种方法的替代方案是什么?

3 个答案:

答案 0 :(得分:5)

如果您使用JQuery进行Ajax,它会设置以下请求标头:

 X-Requested-With: XMLHttpRequest

如果通过Ajax进行调用,您以后可以访问测试。

答案 1 :(得分:4)

您可以将其定义为方法并在控制器中使用它:

def isAjax[A](implicit request : Request[A]) = {
  request.headers.get("X-Requested-With") == Some("XMLHttpRequest")
}

答案 2 :(得分: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);
}