반응형
워드프레스 아약스는 왜 죽을까 ('0')
저는 제 기능에 다음을 추가했습니다.php 파일:
add_action('wp_ajax_send_email', 'send_email_callback');
add_action('wp_ajax_nopriv_send_email', 'send_email_callback');
그래서 다음 콜백 기능을 추가했습니다.
send_email_callback()
{
//do some processing
echo json_encode(array('response'=>'Ya man it worked.'));
//return control back to *-ajax.php
}
이것이 나의 자바스크립트에 반환되는 것입니다.
{"response":"Ya man it worked."}0
그럼 당연히 $.parseJ에 도달하면SON(msg) line I get Uncaught SyntaxError:예기치 않은 개수입니다.
var request = $.ajax({
url: "/wp-admin/admin-ajax.php",
method: "POST",
data: { action : 'send_email', P : container },
dataType: "html"
});
request.done(function( msg ) {
var obj = $.parseJSON( msg );
console.log(obj.response);
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
그럼 이 0은 어디서 오는 겁니까?관리자 - ajax php 97번에 쓰여있습니다
// Default status
die( '0' );
이게 왜 여기 있는 거지, 내가 왜 다이('0') 선에 도달하는 거지?제 반응을 망치지 않게 그냥 죽어야 하는 거 아닌가요?
이 문제를 해결할 수 있는 유일한 방법은 admin-ajax.php를 수정하거나 내 send_email_callback() 기능이 끝날 때 단순히 die()하는 것입니다.
WordPress AJAX 액션에서는 다음과 같은 작업을 수행하면 안 됩니다.return
반응은 그렇지만,echo
응답과 부름die
네 자신.WordPress는 콜백 중 하나가 실행을 죽일 때까지 모든 AJAX 등록 콜백을 계속 호출할 것이며, 마지막 콜백은 다음과 같이 응답하여 사망할 것입니다.0
.
플러그인의 WordPress Codec AJAX 예제
<?php
add_action( 'wp_ajax_my_action', 'my_action_callback' );
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = intval( $_POST['whatever'] );
$whatever += 10;
echo $whatever;
wp_die(); // this is required to terminate immediately and return a proper response
}
언급URL : https://stackoverflow.com/questions/30178610/why-does-wordpress-ajax-die0
반응형
'programing' 카테고리의 다른 글
Excel - 어떻게 하면 세 번째 열로 색을 칠할 수 있는 산점도를 만들 수 있습니까? (0) | 2023.10.22 |
---|---|
부트스트랩 모드에서 특정 필드의 포커스가 나타나면 설정하는 방법 (0) | 2023.10.22 |
Windows Azure에서 사용하기 가장 좋은 CMS (0) | 2023.10.22 |
중첩된 재활용자 보기 높이가 내용을 감싸지 않습니다. (0) | 2023.10.22 |
MySQL Workbench에서 여러 SQL 쿼리를 실행하는 방법은? (0) | 2023.10.17 |