首頁 後端開發 php教程 在php中判断一个请求是ajax请求还是普通请求的方法_PHP

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

Jun 01, 2016 pm 12:16 PM
ajax請求

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 Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

延長Ajax請求的超時時間的方法? 延長Ajax請求的超時時間的方法? Jan 26, 2024 am 10:09 AM

如何延長Ajax請求的過期時間?在進行網路請求時,我們經常會遇到需要處理大量資料或複雜計算的情況,這可能導致請求逾時而無法正常返回資料。為了解決這個問題,我們可以透過延長Ajax請求的過期時間來確保請求能夠順利完成。以下將介紹一些方法和具體的程式碼範例來實現延長Ajax請求的過期時間。使用timeout屬性在發起Ajax請求時,可以透過設定timeout屬性來

ajax請求多久過期 ajax請求多久過期 Nov 20, 2023 am 10:29 AM

AJAX請求沒有固定的過期時間:「Asynchronous JavaScript and XML」是一種用於在網頁上發送非同步請求的技術,它使用JavaScript來向伺服器發送請求並接收回應,而無需刷新整個頁面。

在Yii框架中使用控制器(Controllers)處理Ajax請求的方法 在Yii框架中使用控制器(Controllers)處理Ajax請求的方法 Jul 28, 2023 pm 07:37 PM

在Yii框架中,控制器(Controllers)扮演著處理請求的重要角色。除了處理常規的頁面請求之外,控制器還可以用於處理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函式庫之一。它提供了豐富的

必備工具:了解常用的Ajax請求庫有哪些? 必備工具:了解常用的Ajax請求庫有哪些? Jan 30, 2024 am 11:00 AM

開發必備:探索常用的Ajax請求庫有哪些?在現代前端開發中,使用Ajax進行非同步請求已經成為一種標配,而選擇合適的Ajax請求庫可以讓我們更有效率地處理網路請求,提升開發效率和使用者體驗。本文將探討一些常用的Ajax請求函式庫,幫助開發者選擇適合自己專案的工具。 jQueryAjax:作為最受歡迎的JavaScript庫之一,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(AsynchronousJavaScriptandXML)技術已經成為了Web開發中不可或缺的一部分。透過Ajax,我們可以在不刷新整個頁面的情況下,從伺服器取得資料並動態更新網頁的內容。然而,在使用Ajax發送請求時,有時會遇到請求過期的情況。那麼,什麼情況下會導致Ajax請求過期呢?

如何設定Ajax請求的逾時時間? 如何設定Ajax請求的逾時時間? Jan 26, 2024 am 09:23 AM

Ajax請求的過期時間如何設定?需要具體程式碼範例隨著網路應用的發展,Ajax成為了Web開發中不可或缺的一部分。在發送Ajax請求時,有時我們需要限定請求的過期時間,以防止請求時間過長導致使用者體驗不佳或瀏覽器卡死的情況發生。本文將詳細介紹如何設定Ajax請求的過期時間,並給出具體的程式碼範例。設定Ajax請求的過期時間主要需要透過XMLHttpRequest

See all articles