我已經定製了一個插件來做一些Ajax調用admin-ajax.php並且它工作的很好。我複製的代碼轉移到另一個網站,它不再適用於未登錄誰的用戶Wordpress admin-ajax導致錯誤302重定向
從螢火蟲:
POST http://<subdomain>.<server>/wp-admin/admin-ajax.php 302 Moved Temporarily 1.08s
GET http://<subdomain>.<server>/ 200 OK
編輯:現在的問題是什麼可能一個主題可能做重定向ajax請求。該插件有兩個掛鉤:
add_action('wp_ajax_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for logged in users
add_action('wp_ajax_nopriv_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for not logged in users
他們都很好地工作在大多數的網站,但一個主題重定向非登錄用戶莫名其妙的請求。由於這些操作對於插件而言是特定的,因此我無法從哪裏開始尋找。
SOLUTION:非常感謝Ronald Huereca爲add_action('init'
的解決方案,那就是究竟在何處違規重定向被掛上,在保護管理方面的嘗試。現在我只需要在這裏找到一個安全的解決方案,不會影響主題的管理區域,但也不妨礙其他插件允許用戶發出匿名的Ajax請求。
// stop users accessing the admin
add_action('init', array($this, 'prevent_admin_access'), 0);
function prevent_admin_access() {
if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-admin') !== false) {
$current_user = wp_get_current_user();
if(!user_can($current_user->ID, 'administrator') && (!user_can($current_user->ID, 'contributor'))){
wp_redirect(get_option('siteurl'));
}
}
}
這個問題沒有提到任何有關問題。闡述。 – ThinkingMonkey 2012-02-23 08:00:19
對不起,問題在於我不知道可以將ajax請求重定向到admin-ajax。PHP的行動是我自己的,他們工作得很好,所以在哪裏可以阻礙重定向。 – Sinetheta 2012-02-23 18:23:41
請忽略(刪除評論不工作;( – 2014-02-10 15:13:00