首页 > 解决方案 > AJAX 请求:/wp-admin/admin-ajax.php 403

问题描述

我创建了一个用于计算成本的 wordpress 插件。该表单只有一个输入字段和一个提交按钮。在提交表单时,我想创建一个 ajax 请求。所以,我调用 /wp-admin/admin-ajax.php-Url,但我得到了禁止错误代码 403。我认为 htaccess 中的条目是错误的,但是在更改文件后我得到了同样的错误和重新启动服务器。

你知道这里发生了什么吗?

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# admin-ajax.php & post.php skip/bypass rule
RewriteCond %{REQUEST_URI} (admin-ajax\.php|post\.php) [NC]
RewriteRule . - [S=2]

</IfModule>

# END WordPress

标签: ajaxwordpresshttp-status-code-403

解决方案


如果您没有声明允许 ajax 调用,它会给出 403 禁止错误。

//allow this particular AJAX function for logged in users
add_action('wp_ajax_myajax', 'myajax');

//allow this particular AJAX function for non-logged in users
add_action('wp_ajax_nopriv_myajax', 'myajax');

    function myajax() {
        //your code
    }

推荐阅读