Axios - 在不实际发出请求的情况下获取带有参数的 url

Posted

技术标签:

【中文标题】Axios - 在不实际发出请求的情况下获取带有参数的 url【英文标题】:Axios - get url with parameters without actually making request 【发布时间】:2020-07-01 13:37:35 【问题描述】:

我的 React 项目中有一些代码如下所示:

        const url = '/create-label-shipments.json';
        const filters = Object.assign(, this.state.filters);
        filters.page = this.state.page;
        const response = await axios.get(url, params: filters);

现在我知道 axios 采用 params 对象并创建一个带有查询参数的新 url,例如 '/create-label-shipments.json?page=1&date=2020-03-20&etc...'

我希望我能做的是在我的代码的不同部分调用一些 axios 函数,它的作用与上面的完全一样,但不是发出请求并给我响应,它只是给我 URL。

        const url = '/create-label-shipments.csv';
        const filters = Object.assign(, this.state.filters);
        const url = await axios.getUrl(url, params: filters);
        // at this point, no request was made, and url === '/create-label-shipments.csv?page=1&date=2020-03-20&etc...'

【问题讨论】:

您可以创建自己的自定义函数来执行此操作 【参考方案1】:

也许您在使用axios#getUri(),您可以通过将params 属性和url 属性添加到传递给方法的配置对象来使用:

const params = 
  page: 1,
  date: '2020-03-20'


const url = '/create-label-shipments.csv';
const res = axios.getUri(url, params);

console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js" integrity="sha256-T/f7Sju1ZfNNfBh7skWn0idlCBcI3RwdLSS4/I7NQKQ=" crossorigin="anonymous"></script>

【讨论】:

以上是关于Axios - 在不实际发出请求的情况下获取带有参数的 url的主要内容,如果未能解决你的问题,请参考以下文章

CORS 谷歌浏览器扩展有啥替代品吗?如何在不使用 CORS 的情况下成功发出 ajax 请求?

如何在不发出单独请求的情况下将元数据和音轨从广播流中分离出来

如何在不阻塞的情况下发出请求(使用 asyncio)?

如何让 Playframework 在不发出请求的情况下开始在开发模式下运行应用程序?

如何在不公开 API 密钥的情况下发出 POST 请求?

配置 Axios 和 Flask 以使用 CORS 和 cookie