使用 Axios 获取请求查询参数
发出 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论