我正在尝试学习并测试NativeScript + Angular2,我正在尝试执行一个简单的帖子请求,我已经在Postman中测试了它应该按预期工作但我收到400错误说:
{“error”:{“code”:400,“error”:“invalid_request”,“error_description”:“client_id not specified”,“message”:“client_id not specified”,“details”:[]} }
请注意“未指定client_id”...
我确信从阅读文档中我指定了client_id
我尝试了一堆不同的标题配置,我已经阅读了NativeScript文档和Angular 2文档,但我不太确定这里的问题是什么。
以下是我的代码
getToken() {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let body = JSON.stringify({
client_id: Config.clientid,
client_secret: Config.clientsecret,
grant_type: 'client_credentials'
})
console.log("Body: " + body);
// Body: {"client_id":"12345","client_secret":"98765","grant_type":"client_credentials"}
return this.http.post(
Config.tokenUrl,
body,
{ headers: headers }
)
.map(response => {
let data = response.json()
console.log("Result: " + data.toString());
// Result: {"error":{"code":400,"error":"invalid_request","error_description":"client_id not specified","message":"client_id not specified","details":[]}}
Config.token = data.Result.token;
console.log("Token: " + Config.token);
return data;
})
.catch(this.handleErrors);
}
我在使用Fiddler捕获实际通信方面遇到了问题,这是我正在修复的其他内容。但同时,任何想法?
更新
我发现如果我这样做:
let body = 'client_id=' + Config.clientid + '&client_secret=' + Config.clientsecret + '&grant_type=client_credentials';
headers.append('Content-Type', 'application/x-www-form-urlencoded');
它有效。