오늘 M_Controller에서 다음 코드를 접하여 time() 함수에서 ajax 요청, 게시 요청, REQUEST_TIME의 차이를 판단하는 방법에 대해 조금 배웠습니다.
define('IS_AJAX', $this->input->is_ajax_request()); define('IS_POST', $_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) ? TRUE : FALSE); define('SYS_TIME', $_SERVER['REQUEST_TIME'] ? $_SERVER['REQUEST_TIME'] : time());
is_ajax_request()
메소드는 CI에서 Ajax 요청이 이루어졌는지 확인하는 메소드입니다. 공식 문서에서는 다음과 같이 설명합니다. 서버 헤더에 HTTP_X_REQUESTED_WITH
, 존재하는 경우 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. is_ajax_request()
方法是CI内判断是否ajax请求的一种方法,官方文档对于它的解释是:检查服务器头中是否含有HTTP_X_REQUESTED_WITH
,如果有返回TRUE,否则返回FALSE。
当然,这样的判断是不够完善的,涉及到判断的原理如下:
当我们通过jquery发送ajax请求时,会在请求头部添加一个名为 X-Requested-With 的信息,信息默认内容为:XMLHttpRequest,这是CI框架对于ajax请求判断的依据。
但是,当我们用原生js时如何进行判断呢?
xmlHttpRequest.setRequestHeader("request_type","ajax");
根据XMLHttpRequest对象,手动进行头部设置,如上设置完成后,我们可以再PHP逻辑代码中如下获取:
$_SERVER['HTTP_REQUEST_TYPE']
很明显,我们在头部设置的request_type
在后台获取时,加上HTTP_的前置字符串,即可获取到前台发送的Header信息,即通过调用$_SERVER['HTTP_REQUEST_TYPE']
그런데 네이티브 js를 사용할 때는 어떻게 판단하나요? rrreee
XMLHttpRequest 객체에 따라 헤더를 수동으로 설정합니다. 위 설정이 완료된 후 다음과 같이 PHP 논리 코드에서 얻을 수 있습니다. #🎜🎜#rrreee#🎜🎜#분명히, 우리는 헤더에 있습니다. 백그라운드에서 request_type
세트와 HTTP_의 접두사 문자열을 획득하면 프론트 데스크에서 보낸 헤더 정보를 얻을 수 있습니다. 즉, 를 호출하여 얻을 수 있습니다. $_SERVER['HTTP_REQUEST_TYPE']프론트 데스크에서 전달한 값 가져오기: ajax 물론 request_type을 다른 필드로 설정할 수도 있습니다. #🎜🎜##🎜🎜#위 내용은 참고용입니다! #🎜🎜##🎜🎜#추천 튜토리얼: #🎜🎜#PHP 비디오 튜토리얼#🎜🎜##🎜🎜#
위 내용은 PHP가 Ajax인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!