ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでリクエストが ajax リクエストであるか通常のリクエストであるかを判断する方法

php_PHP チュートリアルでリクエストが ajax リクエストであるか通常のリクエストであるかを判断する方法

WBOY
WBOYオリジナル
2016-07-21 15:27:40723ブラウズ

/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 パラメーターが渡されないことです。


主な内容は次のとおりです:
1. この問題を解決するには前提条件があります。つまり、jquery フレームワークでは $.ajax を使用する必要があります。 .get または $.post メソッドが Web ページのコンテンツをリクエストすると、HTTP_X_REQUESTED_WITH パラメータがサーバーに渡されます。次のメソッドを使用して、リクエストが Ajax リクエストであるか通常のリクエストであるかを判断できます。 $_SERVER['HTTP_X_REQUESTED_WITH' ]) && strto lower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{

2. jquery リクエストが Web を開く場合、注意が必要な別の問題があります。 iframe を介してページにアクセスすると、HTTP_X_REQUESTED_WITH パラメーターは渡されません。つまり、リクエストのタイプを判断する方法がありません。



http://www.bkjia.com/PHPjc/323734.html

www.bkjia.com

http://www.bkjia.com/PHPjc/323734.html技術記事 /path/to/pkphp.com/script.php?ajax 次のメソッドを使用して、PHP スクリプトで決定します。 次のようにコードをコピーします。 if(isset($_GET['ajax'])) { ...これはajax リクエスト、その後... } else { .....
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。