2
我一直在用Ionic 2實現一個POST調用ASP.NET API,我掙扎了一番。我在一個有用的指南的幫助下管理了一個GET,但是我真的找不到任何東西類似的POST,直到我遇到一個YouTube視頻。與視頻的幫助下,我有這個方法在我的供應商:用Ionic 2 POST調用
backendlogin() {
if (this.data) {
return Promise.resolve(this.data);
}
return new Promise(resolve => {
var json = JSON.stringify({ email: '[email protected]', password: 'root' });
var params = 'json=' + json;
var headers = new Headers();
headers.append('Content-Type', 'application/json');
this.http.post('http://insertipadresshere/api/login',
params, {
headers: headers
})
.map(res => res.json())
.subscribe(data => {
this.data = data;
resolve(this.data);
},
error => alert(error),
() => console.log("Finished")
);
});
}
我GET方法基本上是由離子創建提供商時所提供。它們與這段代碼很相似,除了聲明變量的部分和附加的頭部外,還有http.get,而不是當然後的。
這是我使用從頁面控制器調用提供的函數功能:
setuplogin() {
this.backend.backendlogin()
.then(data => {
this.data = data;
});
console.log(this.data);
}
現在到這個問題。如果我理解了所有事情,那麼backendLogin()應該顯示一個警告,如果出現錯誤,它會執行錯誤。警報顯示「[object Object]」。控制檯中唯一的東西是一個空的日誌,可能來自setupLogin(),因爲數據是空的。該API應採取電子郵件地址和密碼,並返回一個UID。任何人都可以將我指向正確的方向嗎?
return new Promise((resolve,reject) => {
var json = JSON.stringify({ email: '[email protected]', password: 'root'});
var params = 'json=' + json;
var headers = new Headers();
headers.append('Content-Type', 'application/json');
this.http.post('http://insertipadresshere/api/login',
params, {
headers: headers
})
.map(res => res.json())
.subscribe(data => {
this.data = data;
resolve(this.data);
},
error => reject(error),
() => console.log("Finished")
);
});
這麼說,我不認爲有必要創建一個原始的承諾:
不幸的是,沒有工作。你認爲這是API的問題嗎?我沒有爲自己編寫代碼,但我可以聯繫作者。 – Pharetra
你能看到在開發工具,網絡選項卡中實際執行的請求嗎?可以幫忙看看它;-) –
我可以,你需要什麼數據?我注意到有一個400錯誤的請求POST方法。 – Pharetra