Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery Ajax回调未触发或不工作_Javascript_Php_Ajax_Wordpress - Fatal编程技术网

Javascript jQuery Ajax回调未触发或不工作

Javascript jQuery Ajax回调未触发或不工作,javascript,php,ajax,wordpress,Javascript,Php,Ajax,Wordpress,我刚刚开始试验jQuery和ajax。我看过类似的帖子,但仍然无法解决我的问题 我正在写一个wordpress插件。我有以下资料: add_action('wp', 'wl_init'); add_action('wp_ajax_wl_add_wishlist', 'wl_wishlist_process'); add_action('wp_ajax_nopriv_wl_add_wishlist', 'wl_wishlist_process'); function wl_wishli

我刚刚开始试验jQuery和ajax。我看过类似的帖子,但仍然无法解决我的问题

我正在写一个wordpress插件。我有以下资料:

 add_action('wp', 'wl_init');

 add_action('wp_ajax_wl_add_wishlist', 'wl_wishlist_process');
 add_action('wp_ajax_nopriv_wl_add_wishlist', 'wl_wishlist_process');

 function wl_wishlist_process (){
    echo 'test';
    die();
 }

  function wl_init(){
      wp_register_script( 'wishlist-js', plugins_url( '/wishlist.js', __FILE__ ), array('jquery') );

      wp_localize_script( 'wishlist-js', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));

      wp_enqueue_script( 'jquery');
      wp_enqueue_script( 'wishlist-js' );
  }
这是我的js文件“

jQuery(文档).ready(函数($){
$('wl#u愿望列表')。单击(函数(e){
警报(“此运行”);
//var plugurl=document.location.protocol+'/'+document.location.host+'/test/wp admin/admin ajax.php';
//""
//“/test/wp admin/admin ajax.php”
ajax({url:myAjax.ajaxurl,类型:'post',数据:{action:'wl_wishlist_process',post_id:100},成功:函数(响应){
警报(响应);
},
错误:函数(xhr){
警报(“有错误”);
}});
});
});
我知道js文件已加载并正在运行,因为我看到了警报(“This runs”)。但是,它既没有给我成功也没有给我错误。是ajax调用出错还是回调函数出错?我在这里遗漏了什么

另外,当我打开ajax调用()的url时,它会显示“0”。这是否正确

我已经使用了所有的注释方法来获取url,但是没有一个有效


谢谢!

wordpress ajax端点的
0
响应表明未传入任何操作或无效操作。您的操作应该是
wl\u添加\u wishlist
,而不是
wl\u wishlist\u进程
。这将修复硬编码的ajax url。wordpress知道它在子目录中(
/test/
)?这就解释了为什么本地化URL不起作用。啊,这就是问题所在!我将其更改为
wl\u add\u wishlist
,现在它可以工作了。如果我添加
wp\u localize\u脚本('benwishlist js','myAjax',array('ajaxurl'=>admin\u URL('admin ajax.php'))
它解决了对url进行硬编码的问题吗?您介意详细说明wordpress如何知道它在子目录中吗?非常感谢!wordpress ajax端点的
0
响应表明没有传递任何操作或无效操作。您的操作应该是
wl\u add\u wishlist
而不是
wl\u wishlist_process
。这将修复您硬编码的ajax url。wordpress知道它位于子目录(
/test/
)中吗?这将解释本地化url不起作用的原因。啊,这就是问题所在!我将其更改为
wl\u add\u wishlist
,它现在正在工作。如果我添加
wp\u本地化脚本('benwishlist js',myAjax',array('ajaxurl'=>admin\uURL('admin ajax.php'));
它解决了对url进行硬编码的问题吗?您介意详细说明wordpress如何知道它在子目录中吗?非常感谢!
jQuery(document).ready(function($) {
        $('#wl_wishlist').click(function(e) {
            alert('This runs');
            //var plugurl = document.location.protocol+'//'+document.location.host+'/test/wp-admin/admin-ajax.php';
            //"<?php echo admin_url('admin-ajax.php'); ?>"
            //"/test/wp-admin/admin-ajax.php"
            jQuery.ajax({url: myAjax.ajaxurl, type: 'post', data: {action: 'wl_wishlist_process', post_id:100}, success: function(response) {
                alert(response);
            },
            error : function (xhr){
                alert('There is an error');

            }});

        });
});