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

React中使用Axios调用Get接口时如何传递带空格的字符串查询参数

Axios Get请求传递带空格字符串查询参数的正确方法

你直接拼接带空格的URL发起请求无返回的原因有两个:

  1. URL规范不允许直接出现空格等特殊字符,未经编码的参数会导致服务端解析失败,返回空结果
  2. jsonplaceholder接口的多个查询参数为逻辑与(AND)关系,同时传递id和title时,只会返回同时满足两个条件的记录,不存在符合要求的记录自然返回空数组

正确的参数传递方式

Axios的get方法支持传入第二个配置对象,通过params字段传递查询参数,Axios会自动对所有参数做URL编码(空格会被转义为符合规范的格式),无需手动拼接处理,是最推荐的写法。

参数传递示例如下:

// 单请求示例(注意:当前为AND逻辑,仅作参数传递演示,不会返回你需要的三条记录)
Axios.get('https://jsonplaceholder.typicode.com/posts', {
  params: {
    id: [2, 3],
    title: 'eum et est occaecati'
  }
})

满足需求的完整实现

如果你需要获取id=2、id=3、id=4(通过title匹配)三条记录,可以通过并发两个请求后合并结果的方式实现,修改后的componentDidMount代码如下:

componentDidMount() {
  Promise.all([
    // 请求id为2、3的记录
    Axios.get('https://jsonplaceholder.typicode.com/posts', {
      params: { id: [2, 3] }
    }),
    // 请求title匹配的记录(即id=4的记录)
    Axios.get('https://jsonplaceholder.typicode.com/posts', {
      params: { title: 'eum et est occaecati' }
    })
  ]).then(([idRes, titleRes]) => {
    // 合并两个结果数组更新状态
    this.setState({ posts: [...idRes.data, ...titleRes.data] })
  })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:18:03