【问题标题】: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 解析器直接读取的单个数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多