首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axios获得以对象为参数的请求(来自后端)

Axios获得以对象为参数的请求(来自后端)
EN

Stack Overflow用户
提问于 2020-10-08 20:04:15
回答 2查看 2K关注 0票数 0

我在使用axios向这个API发送请求时遇到了很多困难,该API以对象的方式接受参数:

GET https://api.osrsbox.com/items?where={ "name": "Abyssal whip", "duplicate": false }

主要问题是axios会自动对字符串进行编码。在StackOverflow中寻找解决方案时,我谈到了以下几点:

代码语言:javascript
复制
    const item = "Abyssal Whip"

    const config = {
        paramsSerializer: (params) => {
            return querystring.stringify(params, { arrayFormat: 'brackets' });
        },
        params: {
            where : {
                name: item,
                duplicate: false
            }
        }
    }

    axios.get("https://api.osrsbox.com/items", config).then( (resp) => {
        [...]
    })

这导致以下请求:

https://api.osrsbox.com/items?where=%7B%22name%22:%22Abyssal%20Whip%22,%22duplicate%22:false%7D

我想知道我做错了什么。提前谢谢。

PS:我是从Node.js环境/服务器发出请求的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-08 20:11:28

这是一个非常奇怪的格式,您的API接受。但我想这就是你要做的.

在我看来,通过将代码的相关部分更改为:

代码语言:javascript
复制
where: JSON.stringify({
    name: item,
    duplicate: false
}) 

(我希望你的示例请求中的空格是不需要的,如果它们是的话,这就不起作用了)

票数 0
EN

Stack Overflow用户

发布于 2020-10-08 20:14:01

您必须使用npm软件包"qs“。

  1. npm I qs

  1. 创建一个具有所有请求体参数(例如-

)的对象

const requestBody ={

.;

}

  1. 在提出Axios请求时-

console.log(err)) Axios.get("https://api.osrsbox.com/items",qs.stringyfy(requestBody),config) .then(res => console.log(res) .catch(err => .catch)“)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64269861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档