<p dir="auto">As of beta.1, <code class="notranslate">.put</code> and <code class="notranslate">.post</code> require a string body property (see also <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="127075144" data-permission-text="Title is private" data-url="https://github.com/angular/angular/issues/6533" data-hovercard-type="issue" data-hovercard-url="/angular/angular/issues/6533/hovercard" href="https://github.com/angular/angular/issues/6533">#6533</a>).</p>
<p dir="auto">It is a PITA to <code class="notranslate">JSON.stringify</code> the body object everywhere in our calling code. Other http clients (such as <a href="http://api.jquery.com/jquery.post/" rel="nofollow">jQuery ajax</a>) accept either string or object; they <code class="notranslate">JSON.stringify</code> the object for us.</p>
<p dir="auto">Such as:</p>
<ul dir="auto">
<li>developers using JSON 99.93% of the time and avoiding having to JSON.stringify things manually.</li>
<li>adding appropriate content-type headers when sending JSON.</li>
<li>possibly adding an operator like <code class="notranslate">.json()</code> as sugar for <code class="notranslate">.map(res =&gt; res.json())</code></li>
</ul>