无法解析对Kinvey后端的批量JSON POST请求

时间:2016-05-30 09:59:00

标签: javascript ajax rest kinvey

当我尝试解析这个JSON时:

[
{"name":"name1","id":12},
{"name":"name2","id":11},
{"name":"name3","id":111},
{"name":"name4","id":1115}
]

在给Kinvey的BAAS的POST请求中,我收到错误:

{
  "error": "Unable to parse the JSON in the request"
}

Here是我的后端(Kinvey)的屏幕截图。

Here是我的请求的截图(邮递员)。

当我发送单个实体{"name":"name1","id":12}时,它不会抛出错误并将其置于后端。请在此处:Kinvey worked

2 个答案:

答案 0 :(得分:1)

作为一种安全措施,一些框架不会将顶级数组解析为JSON。这样做可以在一些旧版浏览器中启用漏洞。

漏洞利用就像这样:

  1. 使用将其内容存储到其他变量的函数编写一些替换Array的Javascript。

  2. 在恶意网站中,使用<script>标记在另一台服务器上包含对某些特权(JSON阵列)资源的请求。

  3. 欺骗拥有该服务器权限的用户访问您的网站。

  4. 请求的资源将从良性服务器中提取,作为脚本加载到用户的浏览器中并进行评估 - 但是您的恶意替代函数会处理该阵列,您可以随意使用。 cross-site request forgery的一种形式。

    更新

    关于问题,&#34;如何将多个实体上传到Kinvey集合?&#34;,答案在Kinvey documentation

      

    &#34;对于批量上传,请参阅Kinvey控制台上的CSV / JSON导入功能(导航到集合,单击“设置”,然后单击“导入数据”)。&#34;

答案 1 :(得分:1)

您只能使用Kinvey中的POST功能一次POST一个实体。所以这不是JSON解析错误。

此外,您应该考虑通过官方Kinvey SDK为您正在开发的移动平台调用Kinvey,而不是使用REST API。这样,您就可以利用许多其他功能,如缓存,脱机同步,隐式身份验证等。