2017-09-06 140 views
4

我正在使用Angular的新HttpClient進行請求。當我使用舊的http時,我的組件返回正文文本很好,但現在正文文本爲空。我無法弄清楚,服務器正在發送它,但我總是收到null作爲正文。響應正文爲空,狀態爲200

響應的每個其他部分是正常的,狀態200等。put和delete都期望純文本成功消息。我也嘗試使用.body方法來獲取正文文本,並且返回null。

服務:

constructor(private http: HttpClient) {} 

    sendAllow(country, allow) { 
     if (allow === 1) { 
      return this.http.put(`http://${this.address}/rest/geodrop/config/` + 
           `${country}`, { observe: 'response' }); 
     } else { 
      return this.http.delete(`http://${this.address}/rest/geodrop/config/` + 
            `${country}`, { observe: 'response' }); 
     } 
    } 

組分:

this.whiteListService.sendAllow(a, b) 
      .subscribe(
       (response) => console.log(response), 
       (error) => { 
        console.log(error); 
       } 
     ); 
+0

有2個HTTP請求,一個'PUT'和一個'DELETE',哪一個返回了意外的'null'文本?什麼是預期的正文文本? – shaochuancs

+0

兩者都應該返回一個純文本成功消息用於放入或刪除 – FussinHussin

+0

URL是否公開?我們可以嘗試使用「PUT」還是「DELETE」請求? – shaochuancs

回答

8

問題是角期待的JSON響應。更改類型的文字的響應如下:

return this.http.put(`http://${this.address}/rest/geodrop/config/` + 
        `${country}`, { responseType: 'text', observe: 'response' }); 
+0

太棒了!這工作完美 –

+1

很高興它幫助哈哈。我想,當我發佈它時,這是一個愚蠢的問題,因爲它沒有牽引力。我自己想出來了,幾個月後它幫助了人們。很高興知道這不是無用的 – FussinHussin

+0

謝謝你在將接受/內容標題更改爲'文本'後抓住我的頭,但在訂閱中獲得空值! –

相關問題