php 当没有函数输出时,WordPress中 AJAX 应该如何工作?

kpbwa7wx  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(107)

我希望有人能帮我试着弄清楚如何在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');
db2dz4w8

db2dz4w81#

API调用的输出可以在 AJAX 调用的“success”分支中打印。然而,如果服务器回复500错误,则将执行“错误”分支中的代码。我建议您修复API调用中的错误,稍后再试。API调用是否为POST类型?这可能就是服务器返回500错误的原因

相关问题