title: jQuery.ajax - always() not always running
body: <p>I'm using jQuery.ajax to make a REST call and retrieve some JSON. It's working as expected. However, when I force an error condition, such as an invalid URL, the always method does not fire. If I set crossDomain=false or dataType='json', then always does fire. But, I can't do that in my production code. If you set url='<a href="http://ip.jsontest.com/" rel="noreferrer">http://ip.jsontest.com/</a>' then always fires. I created a small example to illustrate the problem:</p>
  
  <pre><code>var jqXHR = jQuery.ajax({
      type: 'GET',
      async: false,
      cache: false,
      url: 'http://ip.jsontest.com.BADURL/',
      contentType: 'application/json; charset=UTF-8',
      crossDomain: true,
      dataType: 'jsonp'
  })
  .done(function (data, textStatus, jqXHR) {
      console.log('Your IP is ' + data.ip);
      console.log('done was called');
  })
  .fail(function (jqXHR, textStatus, errorThrown) {
      console.log('fail was called');
  })
  .always(function (dataOrjqXHR, textStatus, jqXHRorErrorThrown) { console.log('always was called'); });
  </code></pre>
  
  <p>You can run this in the console at jquery.com which is using jQuery 1.9.1. I have the same behavior using jQuery 1.11.1. I need always to fire to handle times when the url is unavailable. I get the same behavior in IE11, Chrome 38 and FF 33. Am I doing something wrong or is this a bug? 
  Thanks.</p>