WordPress的ajax调用返回整个页面,而不仅仅是我回声

时间:2018-12-13 00:29:16

标签: ajax wordpress

我已经找到了与此问题相关的许多其他问题,但都无济于事。在本练习中,我将代码简化到最低限度,但是我看不出有什么问题。我已经检查了文档,一个多小时才浏览多个页面……到底是什么!

在模板页面中,我有一个调用Ajax的jQuery块:

NSOperationBlock

最初,我在同一文件中有PHP的代码,但这是愚蠢的,对吧?它进入functions.php ...不是吗?无论如何,在functions.php中:

// I still have no idea why I have to do this like this...
ajaxscript = { ajax_url :'<?php echo $post->post_name; ?>'}

$.ajax({ 
    url     : ajaxscript.ajaxurl,
    data    : {
                    'action'    : 'mark_lesson',
                    'postname'  : '<?php echo $post->post_name; ?>6'
                },
    method  : 'POST',
    success : function(output) {
        console.log(output);
        $(this).closest('.a_course').find('.read_it_check').addClass('checked');
        $('#yur_here').hide();
    },
    error : function(e) {
         console.log(e);
    }
});

这里有什么要搞砸的?甚至没有足够的代码来弄错它,但是它神秘地返回了整个HTML页面,而不是我回显的内容。

2 个答案:

答案 0 :(得分:2)

您的ajaxscript.ajaxurl代码可能有问题,因此请尝试使用下面的代码作为您的网址。

// in JavaScript, object properties are accessed as ajax_object.ajax_url
    wp_localize_script( 'ajax-script', 'ajax_object',
            array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 ) );
}

有关更多信息,请访问here

答案 1 :(得分:0)

原来我有错字。我最初正确地做到了,然后在调试时通过放置错误了

<?php echo $post->post_name; ?> 

代替:

<?php echo admin_url( 'admin-ajax.php' ) ?>

无需经历本地化脚本或任何其他内容的复杂性。我现在正在将admin-ajax网址直接提供给ajax函数,而没有多余的废话,它似乎可以正常工作。