WordPress admin-ajax.php 302通过表单重定向错误

时间:2013-05-03 09:32:30

标签: ajax wordpress redirect http-status-code-302

这是我的问题的“长篇短篇”版本:
我有这个简报/订阅表单,触发了wp-admin / admin-ajax.php文件,但是当我没有登录到Wordpress时,表单无效。
事实证明,admin-ajax.php文件有一个302反对它。

我已经看过/测试了此问题的先前解决方案(即this onethat one),但这些解决方案都没有帮助。

我在我的主题文件中搜索任何相关的“wp-admin”保护,我没有找到任何东西 我修改并停用了WP Better Security和W3C(以及其他各种插件),没有任何改变 我更改/删除了htaccess,没有任何改变。

我对这个问题感到沮丧 在这一点上,我知道在我的代码中有一些东西阻止访问admin-ajax.php为“局外人”,但我无法弄清楚在哪里。
它可以保护我的管理文件夹和/或保护admin-ajax.php。

有什么想法吗?
非常感谢帮助。
提前致谢!

1 个答案:

答案 0 :(得分:0)

好的,这里的问题是Wordpress为ajax使用了两个不同的钩子。它使用一个用于管理员端,一个用于注销用户。我的猜测是你的表格没有使用后者。

看看这两个:

add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');

来自Wordpress Codex:

  

自WordPress 2.8以来,有一个类似于wp_ajax_(action)的钩子:

     

wp_ajax_nopriv_(action)为未登录的用户执行。所以,   如果你想让它在前端为游客和   登录用户,您可以这样做:

     

add_action('wp_ajax_my_action','my_action_callback');   add_action('wp_ajax_nopriv_my_action','my_action_callback');

见这里:http://codex.wordpress.org/AJAX_in_Plugins