title: jQuery's .done() and .always() never getting called
body: <p>I'm trying to do a simple ajax api call, but my jQuery <code>.done()</code> and <code>.always()</code> callbacks are never getting run, even after a successful call.</p>
  
  <p>Here's where I do the api call:</p>
  
  <pre><code>join: (e) -&gt;
  
      e.preventDefault()
      email = $('.email').val()
  
      $.ajax(
        type: 'POST'
        url: '/api/email'
        data: { email: email }
      ).done((msg) -&gt;
        console.log 'POST success'
        console.log msg
      ).always((msg) -&gt;
        console.log 'Always'
      )
  </code></pre>
  
  <p>Here's the <code>post</code> from my controller:</p>
  
  <pre><code>app.post '/api/email', (req, res) -&gt;
  
      console.log req.body
  </code></pre>
  
  <p>The problems that my server is correctly receiving the data from the api call, but my jQuery callbacks never get fired.</p>
  
  <pre><code>{ email: 'test@email.com' } // What gets logged server-side
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <p>So I tried adding a <code>.fail()</code> method and switched up the code a bit to see if my syntax was wrong, but this new code is still functioning like the old code.</p>
  
  <pre><code>request = $.ajax(
    type: 'POST'
    url: '/api/email/beta'
    data: { email: email }
  )
  
  request.done( (msg) -&gt;
    console.log 'POST success'
    console.log msg
  )
  
  request.fail( (msg) -&gt;
    console.log 'POST Fail'
    console.log msg
  )
  
  request.always( () -&gt;
    console.log 'Always'
  )
  </code></pre>
  
  <p><strong>EDIT 2</strong></p>
  
  <p>I just realized that the <code>POST</code> is actually "failing", but after 4.1 mins... But the weird thing is that I'm still getting the data in the req.body object...?</p>
  
  <p>Here's a screenshot of network from chrome tools: </p>
  
  <p><img src="https://i.stack.imgur.com/ZY8xe.png" alt="enter image description here"></p>