title: error: [Errno 32] Broken pipe
body: <p>I am working on a Django project. All went well till I created an Ajax request to send values from the html page to the backend (views.py). </p>
  
  <p>When I send the data using Ajax, I am able to view the values being passed to views.py, and it even reaches the render_to_response method and displays my page, but throws the broken pipe error in the terminal. I don't see any kind of disruption to the program, but I wanted to know if there is a way to prevent this error from occurring. I checked the other responses. But no luck so far.</p>
  
  <p>When I try to hit submit again on the refreshed page, I get this message:</p>
  
  <blockquote>
    <p>The page that you're looking for used information that you entered. Returning to that page might cause any action you took to be repeated. Do you want to continue? [Submit] [Cancel]`</p>
  </blockquote>
  
  <p><strong>Here is the dump:</strong></p>
  
  <pre><code>    Traceback (most recent call last):
  ----------------------------------------
  Exception happened during processing of request from ('127.0.0.1', 34812)
  ----------------------------------------
    File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 284, in run
      self.finish_response()
    File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 324, in finish_response
      self.write(data)
    File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 403, in write
      self.send_headers()
    File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 467, in send_headers
      self.send_preamble()
    File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 385, in send_preamble
      'Date: %s\r\n' % http_date()
    File "/usr/lib/python2.7/socket.py", line 324, in write
      self.flush()
    File "/usr/lib/python2.7/socket.py", line 303, in flush
      self._sock.sendall(view[write_offset:write_offset+buffer_size])
  error: [Errno 32] Broken pipe
  
  Traceback (most recent call last):
    File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
      self.process_request(request, client_address)
    File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request
      self.finish_request(request, client_address)
    File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
      self.RequestHandlerClass(request, client_address, self)
    File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 570, in __init__
      BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
    File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__
      self.finish()
    File "/usr/lib/python2.7/SocketServer.py", line 693, in finish
      self.wfile.flush()
    File "/usr/lib/python2.7/socket.py", line 303, in flush
      self._sock.sendall(view[write_offset:write_offset+buffer_size])
  error: [Errno 32] Broken pipe
  </code></pre>
  
  <p><strong>Update:</strong>
  Here is the code that I am sending:</p>
  
  <pre><code>    $( document ).ready(function() {
  $.csrftoken();
  $("#submitdata").click(function(){
      //values = [tmode, fmode, t_cool, t_heat, hold];
      values = {
      "tmode": tmode,
      "fmode": fmode,
      "t_cool": t_cool,
      "t_heat": t_heat,
      "hold": hold
      };
      var jsonText = JSON.stringify(values);
      $.ajax({
          url: "/submitdata/",
          type: 'POST',
          data: jsonText,
          dataType: 'json',
          success:function(data){
              console.log(data.success);
          },
          complete:function(){
              console.log('complete');
          },
          error:function (xhr, textStatus, thrownError){
              console.log(thrownError);
              console.log(obj);
          }
      });       
  });
  });
  </code></pre>
  
  <p>And here is my views.py:</p>
  
  <pre><code>@login_required
  def submitvalues(request):
      #context = RequestContext(request)
      if request.POST:
          jsonvalues = json.loads(request.raw_post_data)
          print jsonvalues
          return HttpResponse(json.dumps(dict(status='updated')), mimetype="application/json")
  </code></pre>
  
  <p>I am still facing the same issue. Can someone help me with this?</p>
  
  <p>Edit on 5/28/2014:
  I just figured out the reason for a Broken Pipe. It was because I was not sending back the response from Python and was just expecting the page to refresh automatically. I am a newbie to all of this, and took me a while to figure out why this happened. </p>