title: Where's my JSON data in my incoming Django request?
body: <p>I'm trying to process incoming JSON/Ajax requests with Django/Python.</p>
  
  <p><a href="https://docs.djangoproject.com/en/stable/ref/request-response/#django.http.HttpRequest.is_ajax" rel="noreferrer"><code>request.is_ajax()</code></a> is <code>True</code> on the request, but I have no idea where the payload is with the JSON data.</p>
  
  <p><code>request.POST.dir</code> contains this:</p>
  
  <pre><code>['__class__', '__cmp__', '__contains__', '__copy__', '__deepcopy__', '__delattr__',
   '__delitem__', '__dict__', '__doc__', '__eq__', '__ge__', '__getattribute__',
  '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__',
   '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
  '__setattr__', '__setitem__', '__str__', '__weakref__', '_assert_mutable', '_encoding', 
  '_get_encoding', '_mutable', '_set_encoding', 'appendlist', 'clear', 'copy', 'encoding', 
  'fromkeys', 'get', 'getlist', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 
  'keys', 'lists', 'pop', 'popitem', 'setdefault', 'setlist', 'setlistdefault', 'update', 
  'urlencode', 'values']
  </code></pre>
  
  <p>There are apparently no keys in the request post keys.</p>
  
  <p>When I look at the POST in <a href="http://en.wikipedia.org/wiki/Firebug" rel="noreferrer">Firebug</a>, there is JSON data being sent up in the request.</p>