ホームページ バックエンド開発 PHPチュートリアル 在php中判断一个请求是ajax请求还是普通请求的方法_PHP

在php中判断一个请求是ajax请求还是普通请求的方法_PHP

Jun 01, 2016 pm 12:16 PM
アヤックスリクエスト

Ajax

/path/to/pkphp.com/script.php?ajax
在php脚本中使用如下方法判断:
复制代码 代码如下:
if(isset($_GET['ajax'])) {
...这是一个ajax请求,然后...
}
else {
...这不是一个ajax请求,然后...
}

通过传递_GET参数的方法简单实现了网页请求的判断。但是如果需要这样的功能,这个方法可能就有弊端,功能需求如下:
1.通过ajax请求的网页与普通请求的网页内容是不相同的
2.通过ajax请求的网页是为了方便用户操作,两种方法请求打开的网页必须的内容是相同的,只是ajax请求到的网页内容比较简化和使用,去除了网页的大框架模板。
3.这么做的目的是:用户在网页操作时通过ajax实现,而搜索引擎访问网页时(相当于普通打开网页),得到的内容是一个完整的网页(包含了网页的大框架模板)。
要完成上面的这个功能,就不能使用前面介绍的通过GET参数传递来判断了,如果使用GET传递来判断的话,用户ajax请求和普通网页请求都会是一样的内容,因为你不可能为一个链接设置一个带ajax判断参数和不带的URL。那么如何才能实现这个功能呢?必须通过服务器端PHP判断解决这个问题。也就是今天要说的PHP如何判断ajax请求。这个问题要解决有一个先决条件,那就是你使用的ajax框架必须是jquery。在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,你可以利用如下方法判断某个请求是ajax请求还是普通请求:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
..这是一个ajax请求,然后...
}
else {
..这不是一个ajax请求,然后...
}
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH
{
...这是一个ajax请求,然后...
}
else {
...这不是一个ajax请求,然后...
}
利用这个来进行判断操作,可以使网页端的URL保持一致,但是能够对两种不同的请求却能够得到不同内容的网页。即实现了用户操作优化,又不影响搜索引擎收录,我觉得是一个很棒的解决方案!
这里有一个另外需要注意的问题,就是如果你的jquery请求是通过iframe打开网页的,那么HTTP_X_REQUESTED_WITH参数不会被传递,也就是说你没有办法判断请求的类型。

主要内容是:

1.
这个问题要解决有一个先决条件,那就是你使用的ajax框架必须是jquery。在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,你可以利用如下方法判断某个请求是ajax请求还是普通请求:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{

2.
这里有一个另外需要注意的问题,就是如果你的jquery请求是通过iframe打开网页的,那么HTTP_X_REQUESTED_WITH参数不会被传递,也就是说你没有办法判断请求的类型。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ajax リクエストのタイムアウトを延長するにはどうすればよいですか? Ajax リクエストのタイムアウトを延長するにはどうすればよいですか? Jan 26, 2024 am 10:09 AM

Ajax リクエストの有効期限を延長するにはどうすればよいですか?ネットワーク リクエストを行う場合、大量のデータや複雑な計算を処理する必要がある状況に遭遇することがよくあります。そのため、リクエストがタイムアウトしてデータが正常に返されない可能性があります。この問題を解決するには、Ajax リクエストの有効期限を延長することで、リクエストを確実に正常に完了させることができます。ここでは、Ajax リクエストの有効期限を延長する方法と具体的なコード例を紹介します。タイムアウト属性を使用して Ajax リクエストを行う場合、タイムアウト属性を次のように設定できます。

Ajax リクエストの有効期限が切れるまでどれくらい時間がかかりますか? Ajax リクエストの有効期限が切れるまでどれくらい時間がかかりますか? Nov 20, 2023 am 10:29 AM

AJAX リクエストには固定の有効期限がありません。「非同期 JavaScript および XML」は、Web ページ上で非同期リクエストを送信するためのテクノロジーです。JavaScript を使用して、ページ全体を更新せずにサーバーにリクエストを送信し、応答を受信します。

Yii フレームワークでコントローラーを使用して Ajax リクエストを処理する方法 Yii フレームワークでコントローラーを使用して Ajax リクエストを処理する方法 Jul 28, 2023 pm 07:37 PM

Yii フレームワークでは、コントローラーはリクエストの処理において重要な役割を果たします。通常のページ リクエストの処理に加えて、コントローラーを使用して Ajax リクエストを処理することもできます。この記事では、Yii フレームワークで Ajax リクエストを処理する方法を紹介し、コード例を示します。 Yii フレームワークでは、Ajax リクエストの処理は次の手順で実行できます。 最初の手順は、コントローラー (Controller) クラスを作成することです。 Yii フレームワークが提供する基本コントローラークラス yiiwebCo を継承できます。

プロジェクトに適切な Ajax リクエスト ライブラリを選択する方法 プロジェクトに適切な Ajax リクエスト ライブラリを選択する方法 Jan 30, 2024 am 08:32 AM

実用的なガイド: どの Ajax リクエスト ライブラリがあなたのプロジェクトに適していますか?フロントエンド開発の継続的な発展により、Ajax は Web 開発に不可欠な部分になりました。プロジェクトに適した Ajax リクエスト ライブラリを選択することは、開発効率を向上させ、ユーザー エクスペリエンスを最適化するために重要です。この記事では、読者が自分のプロジェクトに適したツールを選択できるように、一般的に使用される Ajax リクエスト ライブラリをいくつか紹介します。 jQueryAjax jQuery が最も人気のある JavaScript ライブラリの 1 つであることは否定できません。豊かな

必須ツール: 一般的に使用される Ajax リクエスト ライブラリについて理解していますか? 必須ツール: 一般的に使用される Ajax リクエスト ライブラリについて理解していますか? Jan 30, 2024 am 11:00 AM

開発の要点: 一般的に使用される Ajax リクエスト ライブラリについて調べてください。最新のフロントエンド開発では、非同期リクエストに Ajax を使用することが標準機能になっており、適切な Ajax リクエスト ライブラリを選択することで、ネットワーク リクエストをより効率的に処理できるようになり、開発効率とユーザー エクスペリエンスが向上します。この記事では、開発者がプロ​​ジェクトに適したツールを選択できるように、一般的に使用される Ajax リクエスト ライブラリをいくつか取り上げます。 jQueryAjax: 最も人気のある JavaScript ライブラリの 1 つである jQuery は、強力な Ajax リクエスト関数を提供します。

Ajax リクエストの有効期限をカスタマイズできますか? Ajax リクエストの有効期限をカスタマイズできますか? Jan 26, 2024 am 11:13 AM

Ajax リクエストの有効期限はカスタマイズできますか? Web 開発では、多くの場合、Ajax を使用して非同期リクエストを実装し、ページにデータを動的にロードします。 Ajax リクエストを行う場合、リクエストのタイムアウトを制御する必要がある場合があります。つまり、時間制限を設定し、指定された時間内に応答が受信されない場合にリクエストを処理する必要があります。では、Ajax リクエストの有効期限はカスタマイズできるのでしょうか?この記事では、この問題について詳しく紹介し、具体的なコード例を示します。 jQueryのAjax機能を利用する

Ajax リクエストがタイムアウトになる原因は何ですか? Ajax リクエストがタイムアウトになる原因は何ですか? Jan 26, 2024 am 10:53 AM

Ajax リクエストはどのような状況で期限切れになりますか? Web アプリケーションの開発に伴い、Ajax (非同期 JavaScript および XML) テクノロジは Web 開発の重要な部分になりました。 Ajax を通じて、サーバーからデータを取得し、ページ全体を更新せずに Web ページのコンテンツを動的に更新できます。ただし、Ajax を使用してリクエストを送信すると、リクエストの有効期限が切れる場合があります。では、Ajax リクエストはどのような状況で期限切れになるのでしょうか?

Ajax リクエストのタイムアウトを設定するにはどうすればよいですか? Ajax リクエストのタイムアウトを設定するにはどうすればよいですか? Jan 26, 2024 am 09:23 AM

Ajaxリクエストの有効期限を設定するにはどうすればよいですか?特定のコード例が必要 インターネット アプリケーションの開発に伴い、Ajax は Web 開発に不可欠な部分になりました。 Ajax リクエストを送信する場合、リクエストが長すぎてユーザー エクスペリエンスが低下したり、ブラウザがフリーズしたりすることを防ぐために、リクエストの有効期限を制限する必要がある場合があります。この記事では、Ajax リクエストの有効期限を設定する方法と具体的なコード例を詳しく紹介します。 Ajax リクエストの有効期限の設定には主に XMLHttpRequest が必要です

See all articles