AJAX调用-调用do_action失败

时间:2012-03-16 作者:gayan

我正在尝试对插件进行AJAX调用。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$.post(
    \'<?php admin_url(\'admin-ajax.php\'); ?>\',
    {
        action : \'AAA\'
    },
    function( response ) {
        alert( "[[[[" + response + "]]]]" );
    }
);
}
ajax调用工作正常。

add_action( \'wp_ajax_nopriv_AAA\', \'fAAA\' );
add_action( \'wp_ajax_AAA\', \'fAAA\' );

function fAAA(){
      echo "123";
      die();
}
出于某种原因,我的fAAA没有接到电话。

我用过var_dump( $wp_filter[\'wp_ajax_nopriv_AAA\'] ); 检查操作。*在插件中,当我查看admin ajax时,它显示了添加的操作。php,动作不存在。

有什么帮助吗?

3 个回复
SO网友:kaiser

除了@Tareq答案(这是你的主要问题),你应该

  • wp_register_script 以及wp_enqueue_script
  • 加载jQuery的本地副本,而不是来自Google CDN的副本wp_localize_script

SO网友:Tareq

You didn\'t echo admin_url(\'admin-ajax.php\')

SO网友:Adam

您需要避免在wordpress中使用$,因为默认情况下,wordpress以“无冲突”模式运行jQuery。在使用Wordpress开发时,我学会了使用jQuery而不是$。

我不知道这是否是你的问题,因为我正在浏览以找到解决我自己问题的方法。你甚至可能知道这一点,并正在努力解决它。如果是,请道歉。

结束

相关推荐

未登录用户的WordPress AJAX呼叫不起作用

我有一个前端搜索框,我为它实现了自动完成,当我登录时,它对我来说非常有用。但当我没有登录时,由于ajax调用,我得到302,响应头中有位置,所以它试图重定向,我不知道为什么。我注意到很多关于这个问题的帖子,但没有一个帖子/问题对我没有帮助。我的代码,在用户登录时有效,但在用户未登录时无效,请帮助。jQuery$.ajax({ type: \'POST\', url: MyAjax.ajaxurl, data: { action : \