簡體   English   中英

Admin-ajax 在管理器部分返回 0 和錯誤 400

[英]Admin-ajax return 0 and error 400 in manager part

在這里,我遇到了 wordpress 的 admin-ajax.php 的問題。

事實上,我的項目很特別,因為它包含 2 個部分(客戶部分和管理部分)。 第一部分是客戶端部分,因為 (/wp-content/themes/my_theme_child) 是標准的。

我有另一個管理員文件夾(/manager/eliteadmin/),在那里,不可能像我通常在孩子的 functions.php 中那樣使用標准方法激活 admin-ajax,例如這樣的事情:

function wpchild_enqueue_styles(){
    wp_enqueue_script('global', get_stylesheet_directory_uri().'/ajax/global.js', array('jquery'), "", true);
    wp_enqueue_script('services', get_stylesheet_directory_uri().'/ajax/services.js', array('jquery'), "", true);
    wp_localize_script('services', 'ajaxurl', admin_url('admin-ajax.php'));
}

這是結構:

在此處輸入圖像描述

在經理部分我嘗試使用ajax,例如:

add_action('wp_ajax_get_citoyens', 'get_citoyens_ajax');
add_action('wp_ajax_nopriv_get_citoyens', 'get_citoyens_ajax');
function get_citoyens_ajax(){
    $context = array();
    $context['response'] = 'ok';
    echo json_encode($context);
    wp_die();
}

.js 文件:

   function display(){
        jQuery.ajax({
            url: ajaxurl,
            type: 'post',
            data: {
                action: 'get_citoyens'
            },
            success: function(context) { 
                var data = JSON.parse(context);
                if(data.response === 'ok') {
                    console.log("it works");
                } 
            },
            error: function(json) {
                console.log('error');
            }
        });
    }

php 檔案:

 var ajaxurl =  "<?php echo admin_url('admin-ajax.php'); ?>";

所以顯然在管理器部分我不能使用 wp_enqueue_script 和 wp_localize_script。 所以我的下一個問題是:如何在這種特定情況下正確使用 admin-ajax,非常感謝!

您是否嘗試過使用 wp_send_json() 返回數據?

add_action('wp_ajax_get_citoyens', 'get_citoyens_ajax');
add_action('wp_ajax_nopriv_get_citoyens', 'get_citoyens_ajax');
function get_citoyens_ajax(){
    $context = array();
    $context['response'] = 'ok';
    wp_send_json($context, 200);
    wp_die();
}

參考https://developer.wordpress.org/reference/functions/wp_send_json/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM