HaloテーマmjolnirミックスリクエストがPHPでAjaxリクエストであるか通常のリクエストであるかを判断する方法

WBOY
リリース: 2016-07-29 08:45:53
オリジナル
1216 人が閲覧しました

/path/to/pkphp.com/script.php?ajax
次のメソッドを使用して php スクリプトで決定します:

コードをコピーします コードは次のとおりです:


if(isset($_GET ['ajax']) ) {
...これは Ajax リクエストであるため...
}
else {
...これは Ajax リクエストではないため...
}


による簡単な実装_GET パラメータを渡す Web ページリクエストの決定。ただし、そのような機能が必要な場合、この方法には欠点がある可能性があります。機能要件は次のとおりです。
1. ajax を通じてリクエストされる Web ページのコンテンツは、通常のリクエストを通じてリクエストされる Web ページのコンテンツとは異なります。 ajax を介して要求される Web ページは、ユーザーの操作の便宜を図るためのものであり、ajax によって要求される Web ページのコンテンツが比較的簡略化されて使用されている点と、大きなフレームが使用されている点を除いて、2 つのメソッドで要求される Web ページの必要なコンテンツは同じです。 Web ページのテンプレートが削除されます。
3. この目的は、ユーザーが ajax を介して Web ページを操作し、検索エンジンが Web ページにアクセスすると (通常の Web ページを開くのと同等)、取得されるコンテンツは完全な Web ページです (大きなサイズのものも含む)。 Web ページのフレーム テンプレート)。
上記の機能を完了するには、先ほど紹介したGETパラメータの受け渡しを使用して判定することはできません。GETの受け渡しを使用して判定を行うと、リンクを提供できないため、ユーザーのajaxリクエストと通常のWebページのリクエストは同じ内容になります。 ajax判定パラメータあり、なしのURLを設定します。では、この機能をどのように実装すればよいのでしょうか?この問題はサーバー側のPHP判断で解決する必要があります。つまり、今日お話しするのは、PHP が ajax リクエストをどのように判断するかということです。この問題を解決するには前提条件があります。それは、使用する ajax フレームワークが jquery である必要があるということです。 jquery フレームワークでは、$.ajax、$.get、または $.post メソッドを通じて Web コンテンツをリクエストするときに、HTTP_X_REQUESTED_WITH パラメータをサーバーに渡します。次のメソッドを使用して、リクエストが ajax リクエストであるかどうかを判断できます。または、通常のリクエスト:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
..これは ajax リクエストです。 ...
}
else {
..これは Ajax リクエストではありません...
}
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']) == ' xmlhttprequest')if( isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']
{
...これは Ajax リクエストです、そして...
}
else {
...これは ajax リクエストではないので...
}
これを使用して判定操作を実行すると、Web ページ上の URL の一貫性を保ちながら、2 つの異なるリクエストに対して異なるコンテンツの Web ページを取得できるため、ユーザー操作に影響を与えることなく最適化を実現できます。これは素晴らしい解決策だと思います。
ここで注意すべきもう 1 つの問題は、jquery リクエストが iframe 経由で Web ページを開く場合、HTTP_X_REQUESTED_WITH パラメーターが渡されないことです。
主な内容は次のとおりです:
この問題を解決するには前提条件があります。つまり、jquery フレームワークでは、$.ajax または $.get を使用する必要があります。 $.post メソッドが Web ページのコンテンツをリクエストすると、HTTP_X_REQUESTED_WITH パラメーターがサーバーに渡されます。次のメソッドを使用して、リクエストが Ajax リクエストであるか通常のリクエストであるかを判断できます。
if(isset($_SERVER[' HTTP_X_REQUESTED_WITH']) && strto lower ($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
2. ここで注意が必要なもう 1 つの問題があります。それは、jquery リクエストが iframe 経由で Web ページを開く場合です。の場合、HTTP_X_REQUESTED_WITH パラメータは渡されません。つまり、リクエストのタイプを判断する方法がありません。
以上、Halo テーマの mjolnir mix の内容を含め、PHP でリクエストが ajax リクエストか通常のリクエストかを判断する方法を紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート