【问题标题】:Strange behaviour of params.append with axiosparams.append 与 axios 的奇怪行为
【发布时间】:2022-09-24 19:46:55
【问题描述】:
export const getCharactersAsync = createAsyncThunk(\'getCharactersAsync\', async (data) => {
  const response = await axios.get(\'users\', { params: { limit: data.limit } });
  return response.data;
});

这个代码块允许我控制限制属性。

export const getCharactersAsync = createAsyncThunk(\'getCharactersAsync\', async (data) => {
  const params = new FormData();
  // const params = new URLSearchParams();
  params.append(\'limit\', data.limit);
  const response = await axios.get(\'users\', params);
  console.log(response);
  return response.data;
});

但是我无法使用 params.append 控制限制。我尝试了 URLSearchParams 而不是 FormData 但仍然无法操纵响应的限制属性。为什么它们彼此不同?

  • 对于这两个请求,您在 devtools 的 Network 面板中看到了什么? (在任何情况下使用FormDataGET 都很奇怪;使用URLSearchParams,正如您所指出的那样。)我希望使用URLSearchParams 的版本可以工作,但网络面板会告诉你有什么不同,因此有什么问题。
  • 我看到 url 在第一个中有限制。第二个向我展示了只有基本网址。
  • 使用URLSearchParams?这非常令人惊讶。你确定吗?您使用它的代码是什么样的?
  • 是的,我敢肯定。我直接将我的代码复制粘贴到这里。这不是我可以使用工作的世界末日。但是我试图理解为什么另一个不工作。
  • 您发布的代码是不是使用URLSearchParams,该部分被注释掉。

标签: javascript axios form-data urlsearchparams


【解决方案1】:

docs

params 是与请求一起发送的 URL 参数。必须是普通对象或 URLSearchParams 对象

不能是FormData

【讨论】:

  • 他们确实说过“我尝试了 URLSearchParams 而不是 FormData 但仍然无法操纵响应的限制属性”.
  • 他们没有展示他们是如何尝试的,所以我认为他们没有或做错了。
  • 如果您认为他们做错了,为什么不向他们展示如何做对呢?
  • 如您所见,第二个代码块上有一条注释行,表明我尝试使用 URLSearchParams
猜你喜欢
  • 2021-02-11
  • 2019-12-13
  • 2020-05-07
  • 1970-01-01
  • 2012-01-19
  • 2021-10-30
  • 2022-01-20
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多