📌  相关文章
📜  jquery ajax 将数据发送到未定义的 wordpressajax_url - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:08.282000             🧑  作者: Mango

jQuery Ajax将数据发送到未定义的wordpressajax_url - Javascript

简介

使用jQuery的Ajax功能,可以轻松地通过JavaScript将数据发送到WordPress站点。但是,如果WordPress站点的ajax_url未定义,则会收到一个未定义的错误。在这种情况下,可以通过以下方式来解决此错误:

解决方法
方法一:定义ajax_url

可以通过在前端JavaScript中定义ajax_url来解决此问题。在WordPress主题的functions.php文件中添加以下代码:

function my_ajax_scripts() {
    wp_localize_script( 'my-ajax-script', 'my_ajax_object',
        array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_ajax_scripts' );

然后在前端JavaScript文件中使用以下代码来发送数据:

$.ajax({
    url: my_ajax_object.ajax_url,
    data: {
        'action': 'my_action',
        'data': 'my_data'
    },
    success: function(response) {
        console.log(response);
    }
});

在这个例子中,我们定义了一个名为‘my_ajax_object’的对象,其ajax_url属性被赋值为WordPress站点的‘admin-ajax.php’URL。然后,我们可以在前端JavaScript中使用ajax_url属性来发送数据。

方法二:使用绝对路径

也可以通过使用站点的绝对路径来解决此问题。在前端JavaScript中使用以下代码:

$.ajax({
    url: '/wp-admin/admin-ajax.php',
    data: {
        'action': 'my_action',
        'data': 'my_data'
    },
    success: function(response) {
        console.log(response);
    }
});

在这个例子中,我们使用了站点的绝对路径来发送数据,而不是使用ajax_url属性。

总结

WordPress站点的ajax_url未定义可能会导致JavaScript错误。可以通过定义ajax_url或使用站点的绝对路径来解决此问题。