Admin-ajax.php 400 error

时间:2018-07-14 作者:Simoky

您好,我刚刚开始使用wordpress,希望您能提供帮助。我试图使其工作,但由于400错误,响应数据未定义。我什么都试过了。这是我的密码。

function simokydesigns_translate_scripts() {

   wp_enqueue_script(\'customjquery\', get_template_directory_uri() 
   .\'/js/customjquery.js\', array(\'jquery\'));
   wp_localize_script( \'customjquery\', \'ajaxurl\', admin_url( \'admin- 
   ajax.php\' ) );
}
add_action( \'wp_enqueue_scripts\', \'simokydesigns_translate_scripts\' );

function get_ajax_sidebar(){

  get_sidebar();
}

add_action(\'wp_ajax_get_ajax_sidebar\', \'get_ajax_sidebar\');
add_action(\'wp_ajax_nopriv_get_ajax_sidebar\', \'get_ajax_sidebar\');

//js/customjquery.js

(function($) {

  $.ajax({
        type: \'POST\', // use $_POST method to submit data
        dataType: "html",
        url: ajaxurl,
        data: {
            \'action\': \'get_ajax_sidebar\',   
        },
        success:function(data) {

            alert(\'Got this from the server: \' + data);
            //$( \'#widget-top\' ).html( data );
        },
        error: function (data) {
            console.log(\'error\' + data);
        }

    });  



     /*$( \'#widget-top\').append( "<?php echo get_sidebar();?>" );*/


 })( jQuery );

2 个回复
SO网友:Arturo Gallegos

PHP中有两个问题需要更改

不好:

wp_localize_script( \'customjquery\', \'ajaxurl\', admin_url( \'admin- 
   ajax.php\' ) );
更改为:

wp_localize_script( \'customjquery\', \'my_custom_vars\', [\'ajax_url\' => admin_url(\'admin-ajax.php\')] );
您的javascript需要进行这些更改

不好:

$.ajax({
        type: \'POST\', // use $_POST method to submit data
        dataType: "html",
        url: ajaxurl,
更改为:

$.ajax({
        type: \'POST\', // use $_POST method to submit data
        dataType: "html",
        url: my_custom_vars.ajax_url,

SO网友:Jacob Peattie

此处换行:

wp_localize_script( \'customjquery\', \'ajaxurl\', admin_url( \'admin- 
   ajax.php\' ) );
表示AJAX URL不正确。确保没有断线:

wp_localize_script( \'customjquery\', \'ajaxurl\', admin_url( \'admin-ajax.php\' ) );
当我进行此修复并测试时,您的代码运行良好。

但作为旁白POST 请求不适合此用例。您正在获取数据(在本例中是侧栏的HTML),而不是提交数据,因此GET 应使用请求。

结束

相关推荐

Ajax Check Post Status

我有这个功能,每当作者创建一个新帖子时,我都会向所有订阅作者的用户发送电子邮件,效果很好。我正在尝试ajaxify函数,并每隔几秒钟检查一次帖子是否已更新,或者用户是否已发布新帖子。如果是这样,请通过“实时”通知弹出窗口更新该作者的所有订阅者(它不是真正实时的,但似乎是通过setInterval函数实时完成的)。无论如何,任何帮助都将不胜感激!以下是当前函数:add_action(\'publish_listings\', \'vba_update\', 10, 1); add_action(\'