Hak*_*kan 7 ajax jquery firebase
我正在尝试使用Firebase REST API将内容保存到我的数据存储中.我试过jQuery和vanilla JS XHR.但是,两者都给出了同样的错误.403错误请求和此响应:
无效数据; 无法解析JSON对象,数组或值.也许您在密钥名称中使用了无效字符.
这是我的示例JSON,我正在尝试保存:
{
"date": "2pm",
"name": "John"
}
Run Code Online (Sandbox Code Playgroud)
这是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"
},
});
Run Code Online (Sandbox Code Playgroud)
请求的回应:
{
"error" : "Invalid data; couldn't parse JSON object, array, or value. Perhaps you're using invalid characters in your key names."
}
Run Code Online (Sandbox Code Playgroud)
如你所见,没有特殊的字符或任何东西.它应该工作.
它适用于CURL和Httpie.我试着查看-v
Httpie中的选项以获取详细信息.我把所有标题都放在了Httpie身上.什么都没有帮助.顺便说一下,我的环境是可写的,所以不应该有任何权限问题.
知道怎么做到这一点?
谢谢.
gok*_*urt 10
您已通过分配属性指定了您的AJAX
请求包含json
字符串contentType
.但是,附加到请求的参数不是JSON字符串.为了使数据成为json字符串,只需调用JSON.stringify(params)
方法即可.
以下代码段可以帮助您解决问题.
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),
});
Run Code Online (Sandbox Code Playgroud)
干杯.