이 문서에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!