使用 Axios 获取请求查询参数

发布于 2022-12-05 20:52:37 字数 2461 浏览 190 评论 0

发出 GET 请求的最简单方法 使用Axios axios.get() 功能 。 第二个参数为 axios.get()Axios 选项 :Axios 将序列化 options.params 并将其添加到您的查询字符串中,如下所示。

const axios = require('axios');

// Equivalent to `axios.get('https://httpbin.org/get?answer=42')`
const res = await axios.get('https://httpbin.org/get', { params: { answer: 42 } });

res.data.args; // { answer: 42 }

你可以设置 options.params 如上所示的 POJO ,或 JavaScript 的内置实例 URLSearchParams

const params = new URLSearchParams([['answer', 42]]);

const res = await axios.get('https://httpbin.org/get', { params });
res.data.args; // { answer: 42 }

自定义序列化

Axios 的内置查询字符串序列化器尊重 toJSON() function ,因此它会自动序列化内置的自定义 JSON 序列化,如 Moment objects Mongoose documents

const moment = require('moment');

const params = {
  answer: { toJSON: () => 42 },
  time: moment('2016-06-01')
};

const res = await axios.get('https://httpbin.org/get', { params });
res.data.args; // { answer: 42, time: "\"2016-06-01T04:00:00.000Z\"" }

但是,如果您需要在 Axios 序列化查询字符串的方式上有更大的灵活性,Axios 支持 paramsSerializer 允许您覆盖要序列化的 Axios 函数的选项。

const params = { answer: 42 };

const res = await axios.get('https://httpbin.org/get', {
  params,
  paramsSerializer: function paramsSerializer(params) {
    // "Hide" the `answer` param
    return Object.entries(Object.assign({}, params,  { answer: 'HIDDEN' })).
      map(([key, value]) => `${key}=${value}`).
      join('&');
  }
});
res.data.args; // { answer: 'HIDDEN' }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

情栀口红

暂无简介

0 文章
0 评论
468 人气
更多

推荐作者

懂王

文章 0 评论 0

清秋悲枫

文章 0 评论 0

niceone-tech

文章 0 评论 0

小伙你站住

文章 0 评论 0

刘涛

文章 0 评论 0

南街九尾狐

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文