使用ajax和wordpress(尝试正确执行).对我来说这是一个新的东西,但我之前有更多的天赋.看似随机开始出现问题,所以我把代码分解到最基本的水平,我甚至无法让它工作!我觉得我只是感到沮丧,这迫使我错过了一个简单的错误.这有什么不对吗?
我的jQuery:
$.post( ajaxurl,// http://localhost/mysite/wp-admin/admin-ajax.php {action: "post-save"},function(response){ alert(response); } );
我的PHP:
function update_post(){ echo json_encode(array("success" => "all systems go"),JSON_FORCE_OBJECT ); exit; } add_action( 'wp_ajax_post-save','update_post' );
最终结果是警报工作,这意味着$.post成功(对吗?),但返回的变量响应是我的主页的html源…
解决方法
我想到了…
这可能会帮助像我一样的新手犯同样的错误,所以我会回答我自己的问题:)
结果我没有登录,去图.回应很奇怪但是有助于让我失望,返回整个主页.原因是我阻止了包含Ajax响应器的函数文件,如下所示:
function block_users() { if( !current_user_can( 'delete_pages' ) ) { wp_redirect( get_home_url(),301 ); exit; } } add_action('admin_init','block_users');
我应该知道登录(以为我是),但是,这样的意外结果,这是星期五:)
对于偶然发现这一点的人也要注意:如果你确实希望有人在没有登录的情况下进行ajax,请使用wp_ajax,wp_ajax_nopriv的no-priviledge版本.
add_action( 'wp_ajax_nopriv_action','function' );
替代
add_action( 'wp_ajax_action','function' );
前者不需要许可,即登录,以执行ajax请求.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。