当我尝试解析这个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
答案 0 :(得分:1)
作为一种安全措施,一些框架不会将顶级数组解析为JSON。这样做可以在一些旧版浏览器中启用漏洞。
漏洞利用就像这样:
使用将其内容存储到其他变量的函数编写一些替换Array
的Javascript。
在恶意网站中,使用<script>
标记在另一台服务器上包含对某些特权(JSON阵列)资源的请求。
欺骗拥有该服务器权限的用户访问您的网站。
请求的资源将从良性服务器中提取,作为脚本加载到用户的浏览器中并进行评估 - 但是您的恶意替代函数会处理该阵列,您可以随意使用。 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。这样,您就可以利用许多其他功能,如缓存,脱机同步,隐式身份验证等。