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

在WordPress中使用Ajax时遭遇400 Bad Request错误,求排查解决

WordPress AJAX 400错误排查与解决

一、核心错误:钩子语法写错

看你functions.php里的这行代码:

add_action("wp_ajax_publication_filter_function]", "publication_filter_function");

wp_ajax_publication_filter_function后面多了个**]**,这会导致WordPress无法识别这个钩子,找不到对应的处理函数,直接返回400错误。删掉多余的方括号即可:

add_action("wp_ajax_publication_filter_function", "publication_filter_function");

二、补充两个关键优化(避免后续问题)

  1. 完善Nonce验证
    你前端代码里获取了nonce_val,但页面没输出这个字段,后端也没做验证,补上:
  • 在页面模板中添加nonce隐藏字段:
<input type="hidden" class="filter_ajax_nonce" value="<?php echo wp_create_nonce('publication_filter_nonce'); ?>">
  • 在后端处理函数里验证nonce并规范输出:
function publication_filter_function(){
    // 验证请求合法性
    if(!wp_verify_nonce($_POST['nonce'], 'publication_filter_nonce')){
        wp_send_json_error('无效请求');
    }
    // 用WordPress自带函数返回JSON响应,自动处理响应头并终止输出
    wp_send_json_success("Response hello");
}
  1. 前端回调适配JSON响应
    因为后端用了wp_send_json_success,前端success回调要调整成读取JSON格式的返回值:
success: function(response) {
    console.log(response.data); // 会输出"Response hello"
},

错误响应截图

AJAX 400错误响应截图

内容的提问来源于stack exchange,提问作者Sudipta Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:31:04