>백엔드 개발 >PHP 튜토리얼 >PHP는 AJAX 요청인지 여부를 어떻게 확인합니까?

PHP는 AJAX 요청인지 여부를 어떻게 확인합니까?

jacklove
jacklove원래의
2018-05-22 18:05:398769검색

이 문서에서는 PHP가 AJAX 요청인지 여부를 어떻게 판단하는지 설명합니다. .

Jquery

jquery가 보낸 ajax 요청은 요청 헤더에 X-Requested-With 정보를 추가하고 정보 내용은 XMLHttpRequest이므로 php는 $_SERVER 전역 배열을 사용하여 Ajax 요청인지 여부를 확인할 수 있습니다.

//php는 ajax에 대한 요청인지 확인합니다

if (isset($_SERVER["HTTP_X_REQUESTED_WITH"] && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"] == 'xmlhttprequest')){
    // 是ajax请求
} else {
    // 不是ajax请求
}

이것은 ajax 요청으로 판단되는 TP의 상수 IS_AJAX를 생각나게 합니다

이 상수가 어떻게 정의되는지 살펴보겠습니다

In ThinkPHP/Library /Think/APP.class.php의 ThinkPHP (3.2.2) (라인: 49)

define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
 strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') || !emtpty($_POST(C('VAR_AJAX_SUBMIT')] || !empty($_GET[C('VAR_AJAX_SUBMIT')])) 
 ? true : false);

ThinkPHP가 이 원칙을 사용하거나 네이티브 js에서 시작한 ajax 요청을 양식

으로 제출하는 것을 볼 수 있습니다.

요청 헤더 정보를 직접 추가해야 하므로 그래야만 백그라운드에서 판단을 내릴 수 있습니다.

프론트엔드에 요청 헤더를 추가하는 코드는 다음과 같습니다.

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","test.php",true);
xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xmlhttp.send();

이 문서에서는 PHP가 요청 헤더 정보가 올바른지 여부를 결정하는 방법을 설명합니다. AJAX 요청에 대한 자세한 내용은 PHP 중국어 웹사이트를 참조하세요.

관련 권장 사항:

PHP 프로그램에서 보고된 date() 경고 처리에 대한 솔루션


PHP 개발 시 동시성 문제를 해결하기 위한 여러 구현 방법 사례 발견


테이블 데이터를 빠르게 내보내는 방법에 대한 자습서 PHP

위 내용은 PHP는 AJAX 요청인지 여부를 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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