我希望有人能帮我试着弄清楚如何在WordPress中使用 AJAX 来调用第三方API,然后根据响应来更新一些复选框的状态。
我以前使用过 AJAX ,但它依赖于PHP函数的输出,并将其写回Ajax内容,这不是我在这里想要的。
所以我的问题是,目前这是返回一个500错误(但不会告诉我哪一行自己)。
我有一个PHP函数,它执行API调用并返回结果,但我不确定在 AJAX 函数中的确切位置调用它(这应该在操作var中吗?).
我计划将jQuery复选框状态更改添加到 AJAX 的成功条件中,但到目前为止,所做的一切都是试图返回(echo)AJAX代码下面的函数输出。
有人能帮我澄清一下吗?
// AJAX query to get current status
function io_operators_get_status_ajax_enqueue() {
// Enqueue jQuery
wp_enqueue_script('jquery');
// Add the AJAX inline script
wp_add_inline_script(
'jquery',
'
jQuery(document).ready(function() {
var io_operators_status_update = function() {
jQuery.ajax({
url: "/wp-admin/admin-ajax.php",
type: "POST",
data: {
action: "io_operators_get_current_service_state_ajax"
},
success: function(data) {
console.log(data);
},
error: function(throwError) {
console.log(throwError);
}
});
}
io_operators_status_update();
setInterval(io_operators_status_update.bind(null), 10000);
})
'
);
}
add_action('wp_enqueue_scripts', 'io_operators_get_status_ajax_enqueue');
// The output of the AJAX contents
function io_operators_get_current_service_state_ajax() {
try {
return io_operators_get_current_service_state();
} catch (Exception $e) {
return $e;
}
wp_die();
}
add_action('wp_ajax_io_operators_get_current_service_state_ajax', 'io_operators_get_current_service_state_ajax');
add_action('wp_ajax_nopriv_io_operators_get_current_service_state_ajax', 'io_operators_get_current_service_state_ajax');
1条答案
按热度按时间db2dz4w81#
API调用的输出可以在 AJAX 调用的“success”分支中打印。然而,如果服务器回复500错误,则将执行“错误”分支中的代码。我建议您修复API调用中的错误,稍后再试。API调用是否为POST类型?这可能就是服务器返回500错误的原因