axios请求忽略参数
Posted
技术标签:
【中文标题】axios请求忽略参数【英文标题】:Axios requests ignoring parameters 【发布时间】:2020-01-17 19:18:48 【问题描述】:我正在向 Firebase Realtime API 发送请求。当我尝试从特定集合(例如期刊)中删除项目并使用 axios.delete("https://topxxx-xxx.firebaseio.com/journals.json", title: "Nature") 指定哪个期刊标题时,集合中的所有期刊都是删除,不仅仅是“自然”。同样,如果我执行 get 请求并指定标题,则会返回所有期刊。
我也尝试过使用“https://topxxx-xxx.firebaseio.com/journals.json”,params: title: "Nature"。但这也会返回所有期刊。以下是删除请求示例:
axios.delete("https://topxxx-xxx.firebaseio.com/journals.json", title: this.state.title)
.catch(error=> console.log("Error" + error))
【问题讨论】:
【参考方案1】:Firebase 实时数据库 API 不支持条件删除。要删除节点,您必须指定该节点的整个部分,并且(在 REST API 中)use the DELETE
verb 或 use the X-HTTP-Method-Override: DELETE
header。
所以分两步流程:
执行查询以查找具有您要查找的标题的节点:
https://topxxx-xxx.firebaseio.com/journals.json?orderBy="title"&equalTo="the title"
通过向以下 URL 发送 DELETE
来删除匹配节点:
https://topxxx-xxx.firebaseio.com/journals/journalId1.json
【讨论】:
哦,我明白了。谢谢!那么我还是改用 Firestore 会更好吗? Firestore 也不支持条件删除。在那里你也需要先查询找到所有文档,然后一个一个地删除它们。【参考方案2】:您不能像在 firebase 中那样从 json 文件中删除指定项目,并且使用 GET 也会返回整个集合。它在火力基地方面工作得非常正确。如果你想要一些你所期望的东西,可以选择一个小型烧瓶服务器或在 firebase 中检查云功能
【讨论】:
【参考方案3】:您可能希望将该请求发送到连接到 firebase 的后端服务(我假设您使用的是 axios)。然后调用remove方法演示here
【讨论】:
感谢您的回答,但我看到许多其他回复显示如何使用 axios.delete 而不是删除(例如***.com/questions/52694011/…)。也许我在这里遗漏了一些重要的东西......以上是关于axios请求忽略参数的主要内容,如果未能解决你的问题,请参考以下文章