WordPress에서 AJAX 요청 여부를 감지하는 방법은 무엇입니까?
현재 서버 조작이 WordPress에서 AJAX 요청인지 여부를 검출할 수 있는 방법이 있습니까?
예를 들어 다음과 같습니다.
is_ajax()
업데이트: WordPress 4.7.0 이후 함수 wp_doing_ajax()를 호출할 수 있습니다.이는 "Ajax"를 다르게 수행하는 플러그인이 "false"를 "true"로 변환하도록 필터링할 수 있기 때문에 선호됩니다.
원답:
만약 당신이 코덱스에서 권장하는 대로 Ajax를 사용하고 있다면, 당신은 다음 테스트를 할 수 있습니다.DOING_AJAX
상수:
if (defined('DOING_AJAX') && DOING_AJAX) { /* it's an Ajax call */ }
WordPress 4.7은 AJAX 요청을 쉽게 확인할 수 있는 방법을 도입했기 때문에 이 오래된 질문에 추가하려고 합니다.
wp_doing_ajax()
개발자 레퍼런스:
설명:현재 요청이 WordPress Ajax 요청인지 여부를 결정합니다.
반환: (부울) WordPress Ajax 요청일 경우 True이고, 그렇지 않을 경우 false입니다.
기본적으로 DOING_AJAX용 래퍼입니다.
현재 요구가 js 라이브러리(jQuery 등)에서 전송된 AJAX 요청인지 확인하려면 다음과 같이 시도해 볼 수 있습니다.
if( ! empty( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) &&
strtolower( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) == 'xmlhttprequest' ) {
//This is an ajax request.
}
이게 오래된 줄거리인 건 알지만, 받아들여진 답변에 문제가 있어요.
요청이 admin-ajax.php 파일일 경우 정의된 DOING_AJAX 상수를 확인하는 것은 항상 true입니다.(https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-admin/admin-ajax.php#L16)
경우에 따라서는 admin-ajax.php 후크가 AJAX 요청에 사용되지 않고 단순한 엔드포인트(예를 들어 Paypal IPN)에 불과합니다.
정확한 방법은 이안과 스펜서가 말한 것입니다.
if( ! empty( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) &&
strtolower( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) == 'xmlhttprequest' ) {
//This is an ajax request.
}
(댓글을 달았을 텐데...담당자는 없습니다)
WordPress에 기능이 있는지는 모르겠지만, 직접 간단한 기능을 만들어 볼 수 있습니다.
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
// Is AJAX request
return true;
}
if ( ! function_exists('is_ajax') ) {
function is_ajax() {
return defined( 'DOING_AJAX' );
}
}
저는 개인적으로wp_doing_ajax()
단, 다음 예에서는 이 기능을 수행할 수법입니다.
if( true === strpos( $_SERVER[ 'REQUEST_URI' ], 'wp-admin/admin-ajax.php' ) ) {
// is doing ajax
}
언급URL : https://stackoverflow.com/questions/14348470/how-to-detect-if-it-is-an-ajax-request-in-wordpress
'prosource' 카테고리의 다른 글
대응: 부모 컴포넌트는 상태 변화에 따라 변경되지 않은 아이도 모두 재생성 (0) | 2023.02.16 |
---|---|
STS IDE -> update-config.json을 찾을 수 없습니다. (0) | 2023.02.16 |
JSON 데이터로 HIVE 테이블을 만드는 방법은 무엇입니까? (0) | 2023.02.16 |
Wordpress wp-config 환경 변수 사용 (0) | 2023.02.16 |
Ionic + Angular - POST 요청 후 "404 Not Found (캐시로부터)"를 피하는 방법 (0) | 2023.02.16 |