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

调用Freelancer API的/users/0.1/users接口返回400 BAD_REQUEST错误如何解决?

问题根因

你的请求参数序列化逻辑不符合Freelancer该接口的参数要求:封装的fetchV2函数直接把数组类型的参数值当成普通字符串拼接,会将{users:[123456,654321]}转成users=123456%2C654321的格式,但该接口要求数组参数必须用[]后缀的key重复传值,最终query需要是users[]=123456&users[]=654321的格式,和实际传参的参数名不匹配,所以触发参数缺失的报错。

解决方案
  • 首先调整fetchV2函数的参数拼接逻辑,单独处理数组类型的参数:
function fetchV2(urlOb, headerOb, paramsOb) {
  Object.keys(paramsOb).forEach(key => {
    const value = paramsOb[key]
    // 数组类型参数自动加[]后缀,逐个拼接参数
    if (Array.isArray(value)) {
      value.forEach(item => {
        urlOb.searchParams.append(`${key}[]`, item)
      })
    } else {
      urlOb.searchParams.append(key, value)
    }
  })
  return fetch(urlOb, headerOb)
}
  • 业务侧调用代码无需修改,保持原有写法即可。修改后你可以打印url.toString()验证请求地址,确认query部分包含users[]=123456&users[]=654321格式的参数后,即可正常请求接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:48:03