You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress后台AJAX表单请求返回400 Bad Request问题求助

WordPress后台AJAX表单返回400 Bad Request的排查与修复

核心原因:缺失Nonce安全验证

WordPress后台的AJAX请求强制要求验证nonce(安全令牌),如果请求中没有携带合法的nonce,系统会直接返回400错误,这是你当前问题的最可能诱因。

修复步骤

  1. 在前端代码中添加nonce字段
    修改输出AJAX脚本的函数,生成并携带nonce到请求数据中:
add_action('admin_footer', 'vitrin_admin_ajax');
function vitrin_admin_ajax() {
    // 生成专属nonce令牌
    $pm_nonce = wp_create_nonce('vitrin_pm_nonce');
    ?>
    <script>
        (function($) {
            $('.vitrin-private-message-form').submit(function(event) {
                event.preventDefault();
                jQuery.ajax({
                    url: '<?php echo admin_url('admin-ajax.php'); ?>',
                    type: 'post',
                    data: {
                        action: 'submit_vitrin_pm',
                        _wpnonce: '<?php echo $pm_nonce; ?>', // 新增nonce字段
                        ppmcontent: jQuery('#pmcontent').val(),
                        ppmusers: jQuery('#pmusers').val(),
                    },
                    success: function(data) {
                        alert(data)
                    },
                    error: function(xhr) {
                        console.log(xhr.responseText); // 控制台查看具体错误信息
                    }
                });
            })
        })(jQuery);
    </script>
    <?php
}
  1. 在AJAX处理函数中验证nonce
    修改后端处理函数,先验证请求的合法性:
function submit_vitrin_pm() {
    // 验证nonce是否有效
    if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'vitrin_pm_nonce')) {
        wp_send_json_error('无效的请求令牌');
        die();
    }
    echo 'ssss';
    die();
}

add_action('wp_ajax_submit_vitrin_pm', 'submit_vitrin_pm');
// 注:wp_ajax_nopriv_* 钩子用于前台未登录用户,后台请求无需添加此钩子

其他排查方向

  • 检查action参数一致性:确保AJAX请求中的action值与后端钩子wp_ajax_xxx的xxx部分完全一致(大小写敏感)。
  • 确认表单元素存在:检查页面中是否确实存在id="pmcontent"和id="pmusers"的元素,避免选择器错误导致参数无法获取。
  • 排查jQuery冲突:在浏览器控制台输入jQuery,确认能正常输出对象,排除其他插件修改jQuery导致的冲突。
  • 查看错误详情:打开浏览器开发者工具(F12)→ Network标签,找到admin-ajax.php请求,查看Response中的具体错误提示,WordPress会返回明确的问题说明。

内容的提问来源于stack exchange,提问作者Amirhossein Yaldoughie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:15:36