title: Empty req.body receiving text/plain POST request to node.js
body: <p>Why can't I receive plain text sent in a POST request body?</p>
  
  <p>The request made from a client browser:</p>
  
  <pre><code>var xhr = new XMLHttpRequest();
  xhr.open("POST", "/MyRoute/MySubRoute");
  xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
  xhr.send("hello!");    
  </code></pre>
  
  <p>Using Express with my node server:</p>
  
  <pre><code>app.post('/MyRoute/MySubRoute', function(req, res) {
      console.log("Received:"+require('util').inspect(req.body,{depth:null});
      res.send();
  });
  </code></pre>
  
  <p>Logged to the console I get:</p>
  
  <pre><code>Received:{}
  </code></pre>
  
  <p>I've tried with <code>text/plain</code> (no charset), with the same result. If I change my content type to <code>application/json</code> and pass a simple JSON string it works fine.</p>