我按照智能家居中的指导,在Ionic 2 App的提供程序中生成以下代码。
return new Promise(resolve => {
// We're using Angular HTTP provider to request the data,
// then on the response, it'll map the JSON data to a parsed JS object.
// Next, we process the data and resolve the promise with the new data.
let headers = new Headers();
headers.append('Content-Type','application/vnd.alertme.zoo-6.1+json');
headers.append('Accept','application/vnd.alertme.zoo-6.1+json');
headers.append('X-Omnia-Client','Hive Web Dashboard');
let options = new RequestOptions({ headers: headers });
const body = JSON.stringify({
"sessions": [{
"username": "<username>",
"password": "<password>",
"caller": "WEB"
}]
});
this.http.post('https://api.prod.bgchprod.info:443/omnia/auth/sessions', body, options)
.map(res => res.json())
.subscribe(data => {
console.log(data)
});
});
现在,当我尝试由我上面链接的教程的作者非常友好地提供的 Postman 集合时,调用返回完全正常,但在通过应用程序触发时返回 401。
检查提出的请求,一切看起来都是一样的。我无法理解出了什么问题?
401 表示未授权,因此作者很可能通过用户代理、IP 或类似机制明确将邮递员列入白名单,从而使您的自托管应用程序失败。
致任何不幸跌倒在以下部分的人:
检查您的代码。检查一下。再检查一次。最后一次。通过差异运行它。如果某物在两个不同的地方做着两件不同的事情,但看起来一模一样,奥卡姆剃刀会说解决方案是代码实际上并不相同,你只是屈服于睡眠不足和过度沉迷于咖啡因。
答案很简单。考虑教程中的"auth/sessions"与我的代码中的"auth/session"。两个不同的终结点。