ajax - wordpress 中的一个简单的 Ajax 调用不会给出预期的输出
问题描述
这是我的 javascript 文件:-
jQuery(document).ready( function($) {
$('#test_button').click(function(e){
alert("test");
$.ajax({
url : my_ajax_object.ajaxurl ,
type : 'post',
dataType : 'json',
data : {
action : 'do_ga'
},
complete: function(res, status) {
if( status == 'success' ) {
console.log("success "+res);
} else {
console.log("fail "+res);
}
}
});
});
});
这是我在functions.php中的php代码:-
function do_ga() {
die("test" );
}
add_action( 'wp_ajax_do_ga', 'do_ga' );
add_action( 'wp_ajax_nopriv_do_ga', 'do_ga' );
//this is the script en queuing
function my_enqueue() {
wp_enqueue_script( 'ga-loadmore', get_template_directory_uri() . '/pl-custom/front-end-assets/js/ga-loadmore.js', array('jquery') );
wp_localize_script( 'ga-loadmore', 'my_ajax_object',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );
因此,单击 id 为 "#test_button" 的按钮时,它不会输出成功 [object][object] ,而是输出失败 [object][object]。这里需要做什么。准确地说,我想要“成功测试”。请在解决方案中任何需要的地方添加 json_encode 和解码。谢谢
解决方案
我已经将 PHP 代码分离到另一个文件中,并将其包含在 functions.php 中,还分离了排队,并稍微更改了请求的语法。我特此附上我的代码,它可以工作:
function do_ga() {//server code
$x="test";
wp_die( $x);
exit;
}
add_action( 'wp_ajax_do_ga', 'do_ga' );
add_action( 'wp_ajax_nopriv_do_ga', 'do_ga' );
客户端(已经入队):-
jQuery(document).ready( function($) {
$('#test_button').click(function(e){
url = window.location.origin + '/wp-admin/admin-ajax.php?action=do_ga';
alert("test");
$.ajax({
async: true,
type: 'POST',
url: url,
data: {
'my_number':1 //you need not pass data
},
complete: function(res, status) {
if( status == 'success' ) {
alert("success "+ res.responseText);
} else {
alert("unable to process request");
}
}
})
});
});
推荐阅读
- css - 引导行大小不同
- javascript - 我的 -angularjs- 表单的一个特定字段只有在同一表单的至少一个其他字段被修改时才必须是可编辑的
- conda - 在 Colab 上安装 conda
- javascript - 组件视图未更新
- reactjs - 如何在搜索期间取消较早的获取请求并保留最后一个
- python - 无法在池 apply_async 参数中传递共享值对象 (Multiprocessing.Value('i',10))
- android - 如何从通用方法调用我的片段?
- phpmyadmin - 我可以在 sakila 演示数据库 (phpmyadmin) 中将 SQL 字体放大吗?
- python-3.x - 编辑 Python Gui
- apache-kafka - kafka 如何处理对同一代理上的多个分区的写入,而不会随着磁盘寻道的发生而减慢速度