백엔드 개발 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 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 요청에는 고정된 만료 시간이 없습니다. "비동기 JavaScript 및 XML"은 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는 웹 개발에 없어서는 안 될 부분이 되었습니다. 프로젝트에 적합한 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 요청의 만료 시간을 맞춤설정할 수 있나요? 웹 개발에서는 종종 Ajax를 사용하여 페이지에 데이터를 동적으로 로드하는 비동기 요청을 구현합니다. Ajax 요청을 할 때 요청의 시간 초과를 제어해야 하는 경우가 있습니다. 즉, 시간 제한을 설정하고 지정된 시간 내에 응답이 수신되지 않으면 처리해야 합니다. 그렇다면 Ajax 요청의 만료 시간을 사용자 정의할 수 있습니까? 이 문서에서는 이 문제를 자세히 소개하고 특정 코드 예제를 제공합니다. jQuery의 Ajax 기능 사용

Ajax 요청 시간 초과의 원인은 무엇입니까? Ajax 요청 시간 초과의 원인은 무엇입니까? Jan 26, 2024 am 10:53 AM

Ajax 요청은 어떤 상황에서 만료되나요? 웹 애플리케이션이 개발되면서 Ajax(Asynchronous JavaScript and XML) 기술은 웹 개발의 필수적인 부분이 되었습니다. Ajax를 통해 서버에서 데이터를 얻고 전체 페이지를 새로 고치지 않고도 웹 페이지의 콘텐츠를 동적으로 업데이트할 수 있습니다. 그러나 Ajax를 사용하여 요청을 보낼 때 요청 만료가 발생하는 경우가 있습니다. 그렇다면 어떤 상황에서 Ajax 요청이 만료되나요?

Ajax 요청에 대한 시간 초과를 설정하는 방법은 무엇입니까? Ajax 요청에 대한 시간 초과를 설정하는 방법은 무엇입니까? Jan 26, 2024 am 09:23 AM

Ajax 요청 만료 시간을 설정하는 방법은 무엇입니까? 특정 코드 예제가 필요합니다. 인터넷 애플리케이션이 개발되면서 Ajax는 웹 개발에 없어서는 안 될 부분이 되었습니다. Ajax 요청을 보낼 때 요청이 너무 길어서 사용자 경험이 저하되거나 브라우저가 정지되는 것을 방지하기 위해 요청 만료 시간을 제한해야 하는 경우가 있습니다. 이 기사에서는 Ajax 요청의 만료 시간을 설정하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. Ajax 요청의 만료 시간을 설정하려면 주로 XMLHttpRequest가 필요합니다.

See all articles