2017-09-06 17 views
4

私はAngularの新しいHttpClientをリクエストに使用しています。私が古いhttpを使用していたとき、私のコンポーネントは本体のテキストをうまく返しましたが、本体のテキストはnullになりました。私はそれを把握することはできません、サーバーはそれを送信していますが、私はいつも身体としてヌルを受け取ります。レスポンスボディが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' }); 
     } 
    } 

コンポーネント:JSONレスポンスを期待している

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

予期しない 'null'テキストを返した2つのHTTPリクエスト、1つの' PUT'と1つの 'DELETE'がありますか?予想される本文は何ですか? – shaochuancs

+0

は、putまたはdeleteのプレーンテキストの成功メッセージを返します。 – FussinHussin

+0

URLは公開されていますか? 'PUT'または' DELETE'リクエストを作ることができますか? – shaochuancs

答えて

8

問題が角張っています。テキストを入力するように応答を変更してください:

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

素晴らしい!これは完璧に働いた –

+1

喜んでそれは笑を助けた。私はそれを掲示したと思ったが、それは牽引力がなかったので愚かな質問だった。私はそれを自分で考え出し、数ヶ月後には人々を助けています。それは役に立たないのではないことを知っておいてください – FussinHussin

+0

受け入れ/コンテンツヘッダーを「テキスト」に変更した後に私の頭を傷つけてくれてありがとうございます。 –

関連する問題