1

我正在使用{N} + Angular 2.我正在對遠程API進行Http POST調用。當我試圖在應用程序上運行API時,它會返回狀態爲200但響應爲空的響應。{N} + Angular-2 http post在主體中返回null,但狀態爲200

但是,當我在POSTMAN上測試API時,它給出了主體。一旦我測試了postman上的API並在我的應用程序上運行它,它會在響應中返回主體。請幫我弄清楚爲什麼會發生這種情況。

+0

請通過rxjs,觀察到的,如果你顯示你的代碼,這將幫助我們來幫助你所有你會得到一個想法 – Nisam

+0

。請出示您的帖子請求和無論您在何處處理回覆。 – wuno

回答

0

這裏是做一個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"; 
相關問題