我正在使用{N} + Angular 2.我正在對遠程API進行Http POST調用。當我試圖在應用程序上運行API時,它會返回狀態爲200但響應爲空的響應。{N} + Angular-2 http post在主體中返回null,但狀態爲200
但是,當我在POSTMAN上測試API時,它給出了主體。一旦我測試了postman上的API並在我的應用程序上運行它,它會在響應中返回主體。請幫我弄清楚爲什麼會發生這種情況。
我正在使用{N} + Angular 2.我正在對遠程API進行Http POST調用。當我試圖在應用程序上運行API時,它會返回狀態爲200但響應爲空的響應。{N} + Angular-2 http post在主體中返回null,但狀態爲200
但是,當我在POSTMAN上測試API時,它給出了主體。一旦我測試了postman上的API並在我的應用程序上運行它,它會在響應中返回主體。請幫我弄清楚爲什麼會發生這種情況。
Angular AJAX調用最初是Observable。你把你的Observable變成了一個承諾嗎?
通過角網站上的教程應該幫助這部分閱讀,https://angular.io/docs/ts/latest/tutorial/toh-pt6.html
這裏是做一個POST請求,然後處理訂閱它的響應的例子。
POST請求
MakePostRequest() {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http
.post('http://localhost:4200/api/end-point',
model,
{headers: headers})
.map((res: Response) => res.json())
.subscribe((res) => {
//do something with the response here
console.log(res);
});
}
}
確保您添加正確的端口。如果您使用的是節點服務器,那麼很可能該端口應該與運行ng2應用程序的端口相同。但是,如果您使用的是PHP服務器,則無論您的PHP服務器在哪個端口上運行,都將使用該端口。
所以在我的情況下,我的apache
正在port 80
上運行。在這種情況下,我會改變URL
此,
.post('http://localhost:80/api/end-point',
這是一個Get Request
Get請求
public GetRequest() {
let params: URLSearchParams = new URLSearchParams();
params.set('email', this.user.email);// set params to URL
params.set('api_key', this.apiKey); // set params to URL
return this.http.get('http://localhost:80/api/end-point',
{ search: params })
.map((res: Response) => res.json())
.subscribe((res) => {
console.log(res);
});
};
另外,還要確保你在你的組件正確的進口。
import {Http, Response, Headers, URLSearchParams} from '@angular/http';
你聽起來像你正在一條道路上,這將很快帶給你觀察。記住,當你着手使用可觀測量時,你將需要使用rxjs
模塊。使用可觀察物質時,您通常需要此導入,但從rxjs
開始還需要更多。
import {Observable} from "rxjs";
請通過rxjs,觀察到的,如果你顯示你的代碼,這將幫助我們來幫助你所有你會得到一個想法 – Nisam
。請出示您的帖子請求和無論您在何處處理回覆。 – wuno