当前位置: 首页 > 面试题库 >

Firebase REST API POST请求失败,并出现错误:“无效数据;无法解析JSON对象,数组或值……”

杨凯旋
2023-03-14
问题内容

我正在尝试使用Firebase REST API将内容保存到我的数据存储中。我尝试使用jQuery和香草JS
XHR。但是,两者都给出相同的错误。403错误请求和此响应:

无效数据; 无法解析JSON对象,数组或值。也许您在密钥名称中使用了无效字符。

这是我的示例JSON,我正在尝试保存:

{
    "date": "2pm", 
    "name": "John"
}

这是示例ajax请求:

jQuery.ajax({
    accept: "application/json",
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    url: "https://something.firebaseio.com/endpointnode.json",
    data: {
        "name": "John", 
        "date": "2pm"        
    },
});

要求的回应:

{
    "error" : "Invalid data; couldn't parse JSON object, array, or value. Perhaps you're using invalid characters in your key names."
}

如您所见,没有特殊字符或任何特殊字符。它应该工作。

它与CURL和Httpie一起正常工作。我尝试检查-vHttpie中的选项以了解详细信息。我像Httpie一样放置所有标头。没有任何帮助。顺便说一下,我的环境是可写的,因此不应有任何权限问题。

任何想法如何实现这一目标?

谢谢。


问题答案:

您已通过分配属性指定您的AJAX请求包含json字符串contentType。但是,附加到请求的参数不是JSON字符串。为了使数据成为json字符串,只需调用JSON.stringify(params)method。

以下代码段可以帮助您解决问题。

var data = {"name": "John", "date": "2pm"};
jQuery.ajax({
    accept: "application/json",
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    url: "https://something.firebaseio.com/endpointnode.json",
    data: JSON.stringify(data),
});

干杯。



 类似资料:
  • 每当我尝试使用docfx构建任何留档时,我都会在构建步骤中收到以下错误,该步骤使用msBuild来分析cspros代码中的xml注释: 警告:Metadata命令。ExtractMetadataWorkspace失败,原因是:[失败]处理文件“C:\temp\docfxtest\docfx_project\src\src.csproj”时MsBuild失败,并带有消息:无法加载SDK解析器。存在清

  • 我也尝试过从映射模板中删除双引号后。但没有奏效。

  • 问题内容: 我有以下JSON数据: 使用JSON-to-Go,我得到以下Go类型定义: 使用此代码(play.golang.org) 我得到错误 我不明白为什么。你能帮助我吗? 问题答案: JSON源是单个对象,但是您尝试将其解组为切片。将类型更改为(非切片): 然后输出(在Go Playground上尝试):

  • 我试图实现一个简单的android应用程序,在这个应用程序中,我试图通过php站点检索数据库值,但是下面的代码在解析json数据时产生错误。 我的php文件编码json如下 Android类如下 最后是logcat输出 如何获得表的所需值 请帮忙。

  • 问题内容: 我试图从JSON数组中获取每个JSON对象。我通过HTTP发布获得此数据。 我知道我的数据是什么样的: 我的示例代码和结构如下所示: 我不确定如何遍历JSON数组并获取JSON对象,然后仅使用JSON对象。 问题答案: 试试这个作为您的结构, 您的名称不正确,顶层名称也不正确。解码为a之后,您可以遍历切片以获取每个切片

  • 我在android studio上构建新项目时遇到了一个问题。我不断发现错误: 这是我的项目构建。格拉德尔 这个问题只发生在我尝试构建的新项目上,而在旧项目上不是问题。我已通读R.txt':数据无效。(13) 这导致Android Studio中出现长包名构建错误,但仍然无法解决问题。 我只在使用Windows10(更新1909)时遇到这个问题,而在ubuntu上使用android studio时