【问题标题】:axios.put save as a stringaxios.put 保存为字符串
【发布时间】: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 保存字符串?
【问题讨论】:
标签:
reactjs
firebase
firebase-realtime-database
axios
【解决方案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 解析器直接读取的单个数字。