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

WordPress REST API 400错误:Vue请求失败Postman正常

WordPress REST路由Axios请求400错误排查

你的问题核心是:带args验证的REST路由,Postman请求正常,但Vue+Axios请求返回400 Bad Request,注释args后恢复正常。大概率是请求参数的传递格式、参数有效性或WordPress对参数的解析逻辑导致,而非sanitize_callback的语法问题,以下是具体排查方向:

1. 检查Axios的请求参数格式与Content-Type

WordPress REST API默认优先解析form-data或x-www-form-urlencoded格式的POST参数,而Axios默认可能用application/json格式发送请求——如果你的路由没有配置支持JSON body解析,WordPress会无法读取参数,导致必填项arg2被判定为缺失,返回400。

  • 验证:打开浏览器开发者工具→Network面板,查看Axios请求的Content-Type头,以及Payload/Form Data里是否有arg2参数。Postman默认可能用了form-data,所以能被正确解析。
  • 修复:
    要么修改Axios请求配置,用表单格式发送:
    const params = new URLSearchParams();
    params.append('arg1', 'xxx');
    params.append('arg2', 'user@example.com');
    
    axios.post('/wp-json/myPlugin/v1/registration', params, {
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
    });
    
    要么在WordPress里添加JSON body解析支持,比如在路由回调前手动解析:
    function create_new_user($request) {
      // 手动解析JSON body
      $params = json_decode(file_get_contents('php://input'), true);
      // 后续用$params获取arg1/arg2
    }
    

2. 验证sanitize_callback的处理结果

你的arg2用了sanitize_email,如果Axios传递的arg2不是合法邮箱格式,该函数会返回空字符串——而arg2是必填项,WordPress会判定参数无效,返回400。Postman可能传的是合法邮箱,所以能通过验证。

  • 调试:在sanitize_callback里加日志,查看实际接收到的参数和处理结果:
    'sanitize_callback' => function($param){ 
      error_log('Received arg2: ' . $param);
      $sanitized = sanitize_email($param);
      error_log('Sanitized arg2: ' . $sanitized);
      return $sanitized;
    }
    
    然后查看WordPress的错误日志(wp-content/debug.log,需开启WP_DEBUG),如果$sanitized为空,说明Axios传的邮箱格式不合法。

3. 确认Axios是否正确传递了必填参数

可能是Axios请求里漏传了arg2,或者参数名拼写错误(比如把arg2写成arg_2),Postman里参数名正确所以没问题。

  • 验证:在浏览器Network面板里直接查看请求的参数列表,确认arg2存在且拼写正确。

4. 临时排除sanitize_callback的影响

把sanitize_callback临时替换为直接返回参数,看是否还返回400:

'arg2' => array( 
  'required' => true, 
  'sanitize_callback' => function($param){ 
    return $param; // 跳过邮箱验证
  } 
)

如果此时Axios请求正常,说明问题确实出在sanitize_email的处理上;如果还是报错,说明是参数传递或解析的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:50:56