【问题标题】:Why my wordpress ajax isn't calling in frontend javascript file?为什么我的 wordpress ajax 没有在前端 javascript 文件中调用?
【发布时间】:2021-07-11 16:18:28
【问题描述】:

我在 js 文件中使用 ajax。但现在在控制台日志中出现 "mydomain.com/my_ajax.ajax_url not found 404" 错误。

这是我的 js 文件 (demo.js) 代码。各种方法都试过了,没办法--

jQuery.ajax({
        type: "post",
        url: "my_ajax.ajax_url",
        data: { action: "data_fetch", keyword: input }
});

我的函数.php -------

add_action('wp_enqueue_scripts', 'hindrise_script');

function my_enqueue() {

 wp_register_script('plugin-ajaxJs', CHILD_URL . '/js/demo.js', __FILE__);
    wp_enqueue_script('plugin-ajaxJs');
    
    wp_localize_script('plugin-ajaxJs', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));
    
}

【问题讨论】:

  • url: my_ajax.ajax_url, 去掉引号

标签: javascript jquery ajax wordpress


【解决方案1】:

函数名称与您在 add_action 中定义的名称不同。在 add_action 和函数名中使用相同的名称:

add_action( 'wp_enqueue_scripts', 'hindrise_script');
function hindrise_script() {

 wp_register_script('plugin-ajaxJs', CHILD_URL . '/js/demo.js', __FILE__);
    wp_enqueue_script('plugin-ajaxJs');
    
    wp_localize_script('plugin-ajaxJs', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));
    
}

同样在 JS 文件中删除传递变量的引号:

jQuery.ajax({
        type: "post",
        url: my_ajax.ajax_url,
        data: { action: "data_fetch", keyword: input }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2015-05-18
    • 2013-06-16
    • 2014-11-09
    • 2014-03-15
    • 2012-08-25
    相关资源
    最近更新 更多