如何用axios传动态参数给url

发布于 2022-09-30 23:08:16 字数 393 浏览 22 评论 0

后端接口的url是这样的:

https:.../node/:id/children

这里的:id是在url中的,需要我用获取到的id 替换掉字符串中 :id 的部分,然后用最终拼接的url发送请求

在这想请问一下大佬们, axios中有这种匹配url中动态参数的功能吗?
我尝试在axios参数中传入{ params: { id: 123 } },但是没有用,最终请求的url是这样的:

https:.../node/:id/children?id=123

我查看了axios文档,没有类似的情况
所以是不是这种情况只能通过手动拼接url后再去调用接口?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

单身情人 2022-10-07 23:08:16

没看见有这么个API,我通常也是url拼接做的

无法回应 2022-10-07 23:08:16

在拦截器处理就好了,检查到存在:xxx格式以及携带params参数,就把url改了就行了

舂唻埖巳落 2022-10-07 23:08:16

axios的url你传动态的就去不就好了,/node/123/children这样

离线来电— 2022-10-07 23:08:16

后台给的是示例,所以要手动改。

拼接或正则替换

let params = {id:11};

`.../node/${params.id}/children`;

PS:

qs.stringify() 将对象 序列化成URL的形式,以&进行拼接
https://blog.csdn.net/qq_3912...

野の 2022-10-07 23:08:16

你可以了解一下javascript的模板字符串写法:https://developer.mozilla.org...

比如后台给定请求类似指定用户信息api:http://xxxx/api/v1/user/:id
这里是指需要传入一个用户id值进行参与请求,类似于:http://xxxx/api/v1/user/1245545
假设有用户部分信息,含id值:const user1={id:1245545,name:'张三'};
使用axios进行请求传递相应id值:
axios({
    url:`http://xxxx/api/v1/user/${user1.id}`, // 这样写这里就会自动编译为:http://xxxx/api/v1/user/1245545
    .....
})
少钕鈤記 2022-10-07 23:08:16

axios建议封装在用,你遇到这个问题说明你axios封装的不对
正确的做法

function api(id){
    axios({
        url:`/node/${id}/children`
    })
}

调用直接掉api('asdas'),甚至这个也要封装一下:

axios({
    url:`/node/${id}/children`
})

封装成

const send = async (url, method, options){
    return await axios.request({
        url,
        method,
        headers: options.headers,
        params: { ...options.params },
        data: typeof options.data === 'object' && !Array.isArray(options.data) ? { ...options.data } : options.data
    });
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文