どのように要求しない:: is_ajaxを()Kohanaの中で動作しますか?

StackOverflow https://stackoverflow.com/questions/1113892

  •  12-09-2019
  •  | 
  •  

質問

要求がAJAXのものであればどのようKohanaのは決定していますか?

リファラ文字列内の異なるものがありますか?私は、GET PARAMを追加する必要があり、おそらく?ajax=trueますか?

役に立ちましたか?

解決

ほとんどのブラウザは、この指示を使用してこの場合にヘッダを送信するための要求がXMLHTTPリクエストによって行われた場合、

これは、チェックされます。HTTP_X_REQUESTED_WITHするように設定されるヘッダXMLHttpRequest

他のヒント

v2.3.4のよう

/**
 * Tests if the current request is an AJAX request by checking the 
 * X-Requested-With HTTP request header that most popular JS frameworks 
 * now set for AJAX calls.
 *
 * @return  boolean
 */

public static function is_ajax()
{
  return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND 
          strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
}

ネクロ-投稿これが思い付いたので、最初に私のGoogle検索ます。

知らんKohanaのは、まだこのように動作しますが、HTTP_X_REQUESTED_WITHを使用すると、もはやベスト・プラクティスではありません。

場合

Ajaxリクエスト - 実際には、すべてのHTTP要求は - ヘッダーを "受け入れる" を送信する必要があります。

任意のサーバー側のプロセスが応答して送信するためにどのようなコンテンツを決定するために「同意する」ヘッダを調べる必要があります。 PHPでこれを行う1つの方法があります:

  function is_ajax() {
    return $_SERVER['HTTP_ACCEPT'] == 'application/json';
  }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top