gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:04:36 26 4
gpt4 key购买 nike

使用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' );

最终结果是alert起作用了,这意味着$.post成功了(对吧?),但是返回的变量response是我主页的html源...

最佳答案

我明白了...

这可能会帮助像我这样犯同样错误的新手,所以我会回答我自己的问题:)

原来我没有登录,想想吧。不过,这个 react 很奇怪,让我失望了,返回了整个主页。原因是我阻止了我的函数文件,其中包括 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。

add_action( 'wp_ajax_nopriv_action', 'function' );

代替

add_action( 'wp_ajax_action', 'function' );

前者不需要权限(即登录)即可执行ajax请求。

关于jquery - Ajax 成功消息返回我主页的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com