>  기사  >  php教程  >  요청이 Ajax 요청인지 PHP의 일반 요청인지 확인하는 방법

요청이 Ajax 요청인지 PHP의 일반 요청인지 확인하는 방법

高洛峰
高洛峰원래의
2016-11-30 09:19:581058검색

/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 또는 $.post 메소드를 통해 웹 콘텐츠를 요청할 때 HTTP_X_REQUESTED_WITH 매개변수를 서버에 전달합니다. 다음 메소드를 사용하여 요청이 Ajax 요청인지 확인할 수 있습니다. 또는 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 프레임워크에서 $.ajax, $를 통해 웹 페이지를 요청할 수 있어야 합니다. .get 또는 $.post 메소드를 사용하면 HTTP_X_REQUESTED_WITH 매개변수를 서버에 전달합니다. 다음 메소드를 사용하여 요청이 Ajax 요청인지 일반 요청인지 확인할 수 있습니다.
if(isset($_SERVER ['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER[ 'HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{


주의가 필요한 또 다른 문제가 있습니다. jquery 요청이 iframe을 통해 웹페이지를 열면 HTTP_X_REQUESTED_WITH 매개변수가 전달되지 않습니다. 즉, 요청 유형을 확인할 방법이 없습니다. 재인쇄시

를 표기해 주세요
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.