jquery – Ajax成功消息返回我主页的HTML

使用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请求.

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...