Ajax wordpress 不工作

Ajax not working wordpress

js文件:(walking_log.js)

  jQuery.ajax
  ({
        url: '<?php echo admin_url("admin-ajax.php"); ?>',
        type: 'POST',
        data: {
          'action':'myaction'
        },
        success: function(data)
        {
            alert('Happy new year 2015 :) ');
        },
        error: function(data)
        {
            alert( 'Sorry! No Happy New year 2015 :(' );
        }
  });

php 文件:

// Ajax Handler.
function so_enqueue_scripts()
{
  $plugin_dir_path = dirname(__FILE__);
  $plugin_url = plugins_url();
  wp_enqueue_script( 'ajaxHandle', $plugin_url . '/walking-log/js/walking_log.js', array('jQuery') );
  wp_localize_script( 'ajaxHandle', 'myAjax', array( 'ajaxurl' => admin_url( 'admin_ajax.php' ) ) );

  add_action( 'wp_ajax_myaction', 'so_wp_ajax_function' );
  add_action( 'wp_ajax_nopriv_myaction', 'so_wp_ajax_function' );
}
add_action( 'init', 'so_enqueue_scripts' );

function so_wp_ajax_function()
{
    die();
}

walking_log.js的路径是对的,我已经用浏览器打开了。我收到成功失败警报。不知道为什么。任何帮助将不胜感激。

编辑: 我在Firebug上得到这个。

"NetworkError: 404 Not Found - http://192.168.1.6/Interaction/exercise-log/%3C?php%20echo%20admin_url(%22admin-ajax.php%22);%20?%3E"

为什么会这样?

在 js 文件中,这行一定是导致错误的原因..

 url: '<?php echo admin_url("admin-ajax.php"); ?>',

您正在 js 文件中调用 php 函数 admin_url。 JS 文件不会调用你的 php fn.

你的错误证实了它....编码url

%3C?php%20echo%20admin_url(%22admin-ajax.php%22);%20?%3E

已解码URL

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