我正在尝试使用以下代码通过meteor调用HTTP post api:
HTTP.post(url, {
headers: {
'X-Parse-Application-Id': appID,
'X-Parse-REST-API-Key': restKey,
'content-type': 'application/json'
},
data: {
"username": username,
"password": password,
"usertype": "3"
}
}, function(error, result) {
if (error) {
console.log(error);
}
}
);
此代码提供HTTP错误:
{
"code": 200,
"error": "bad or missing username"
}
我已经使用Google Chrome中的Postman扩展程序测试了HTTP发布请求,并且我已成功发布数据。我在邮递员中使用了与上述HTTP请求相同的URL和标头,并将主体定义为原始json数据:
{
"username": "testuser123",
"password": "123456",
"usertype": "3"
}
我不确定为什么Meteor HTTP POST请求是一个错误的请求。我可以在Meteor中成功调用HTTP Get API,问题只出现在Post API中。 我正在尝试通过此API创建新用户。以前,这个帖子请求是Parse。现在,由于迁移,我在Heroku上部署了解析服务器。此帖子请求在迁移之前完全正常。迁移后,所有GET请求都没问题,但是这个帖子请求有问题。
答案 0 :(得分:0)
将内容类型从application / json替换为application / x-www-form-urlencoded并使用params代替数据修复了该问题。
HTTP.call('POST', url, {
headers: {
'X-Parse-Application-Id': appID,
'X-Parse-REST-API-Key': restKey,
'content-Type': 'application/x-www-form-urlencoded'
},
params: {
'username': u,
'password': p,
'usertype' : "3"
}
}, function(error, result) {
Session.set("loading",false);
if (error) {
console.log(error);
}
}
);