400坏请求,在WordPress主题开发中,wp_ajax

时间:2019-12-25 作者:Allen Titan

作为Salamu Alaikum,我正在开发一个主题,我已经尝试了各种方法来获得一个成功的ajax请求,它仍然向我显示了400个错误的请求。我在StackOverflow和Wordpress StackExchange中一个接一个的问题都找不到解决方案。

这是ping。进行ajax调用的js文件。

jQuery(\'area\').on(\'click\', function(e) {
      e.preventDefault();
      var product_id = jQuery(this).attr(\'href\');
      Ping(product_id);
    });
            function Ping(product_id) {
                jQuery.ajax({
                    type: "POST",
                    url: ajax_object.ajaxurl,
                    //cache: false,
                    //contentType: "application/json; charset=utf-8",
                    //dataType: "html",
                    data: { \'action\':\'my_action\'}, 
                    success: onSuccesPing,
                    error: onErrorPing,
                });

            }
            function onSuccesPing(data,status) {
                alert(data);
            }
            function onErrorPing(data,status) {

            }
和在函数中。php我有以下代码

function enqueue_scripts() {
        wp_register_script(\'ajax-script\',  get_template_directory_uri() .\'/js/ping.js\', array(\'jquery\'), 1.0 ); 
        wp_localize_script( \'ajax-script\', \'ajax_object\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) ); // setting ajaxurl
    wp_enqueue_script( \'ajax-script\'); // jQuery will be included automatically
}
add_action(\'wp_enqueue_scripts\', \'enqueue_scripts\'); 
function my_action() { 
    echo \'woooo\';
?>

<?php die(); }
add_action(\' wp_ajax_my_action\', \'my_action\');
add_action(\' wp_ajax_nopriv_my_action\', \'my_action\');
即使我删除了整个wp\\uajax\\u{函数}函数。php,它给了我同样的东西。请求似乎无法命中wo\\uajax\\u{函数}。请帮忙,我已经花了整整8个小时,但仍然没有解决方案。提前谢谢。

1 个回复
最合适的回答,由SO网友:Chetan Vaghela 整理而成

问题是,您之前添加了额外的空白wp_ajax 行动从操作中删除空间\' wp_ajax_my_action\'\' wp_ajax_nopriv_my_action\'. 由于ajax请求之前有额外的空间,显示400错误请求错误。您应该使用:

add_action(\'wp_ajax_my_action\', \'my_action\');
add_action(\'wp_ajax_nopriv_my_action\', \'my_action\');

相关推荐

如何使用AJAX更新前端表单

我正在尝试构建自己的前端AJAX更新屏幕镜像界面。我有一个非常基本的形式:<form id=\"mblocation\"> <input type=\"radio\" name=\"mb_user_location\" id=\"mb_user_location1\" value=\"1\" checked=\"checked\"> <label for=\"mb_user_location1\"> <spa