axios.put 保存为字符串

Posted

技术标签:

【中文标题】axios.put 保存为字符串【英文标题】:axios.put save as a string 【发布时间】:2018-08-05 03:28:48 【问题描述】:

如果我尝试使用 axios.put 保存一个字符串,它会报错 400: Invalid data;无法解析 JSON 对象、数组或值。

例如:

axios.put('firebase/url/example.json', "some string")

但如果我使用整数,它会完美地工作:

axios.put('firebase/url/example.json', 200)

如何使用 put 保存字符串?

【问题讨论】:

【参考方案1】:

Firebase 将尝试使用类似 JSON.parse 的函数解析“某些字符串”。 如果你自己尝试,你将无法解析这个:

JSON.parse("some string")

但是如果你正确地编码字符串,你会看到它被更多的引号包裹起来:

console.log(JSON.stringify("some string"))
console.log("some string")
// will output:
// 1. "some string"
// 2. some string

Firebase API docs 用这个例子强调了这一点:

curl -X PUT -d '"Alan Turing"' \
  'https://docs-examples.firebaseio.com/rest/saving-data/fireblog/users/alanisawesome/name.json'

所以你需要做的就是事先正确解析数据:

axios.put('firebase/url/example.json', JSON.stringify("some string"))

200 起作用的原因是它是一个可以被 JSON 解析器直接读取的单个数字。

【讨论】:

以上是关于axios.put 保存为字符串的主要内容,如果未能解决你的问题,请参考以下文章

axios put 不工作

使用 axios.put [laravel + vuejs 3] 更新模式内的数据时出现错误 422

Axios PUT 不更新数据

axios.put 参数怎么传

django rest + axios put请求错误403

Axios PUT 和 GET 请求有问题,有时运行良好,有时不行