Captura 403 de $ .ajax promesa en jQuery v1.x

Estoy teniendo problemas con la captura de 403 de $.ajax promesa en jQuery v1.x.

El mismo codigo

 $.ajax({ dataType: 'jsonp', url: 'http://www.checkupdown.com/accounts/grpb/B1394343/', type: 'GET' }).then(function () { console.log('success', arguments) }, function () { console.log('error', arguments) }); 

rechaza la promesa como se esperaba en jQuery v2.x pero no registra nada en jQuery v1.x (la promesa tiene readyState == 1 ).

Los ejemplos usan 2.1.3 y 1.11.3 versiones de jQuery respectivamente.

¿Por qué exactamente sucede esto? ¿Es solucionable para jQuery v1?

Se desempeñan de manera diferente porque en 1.11.x, un controlador de eventos de error no está asociado a la etiqueta de script, en su lugar, todo lo que tiene es un controlador onloadstatech o onreadystatechange.

https://github.com/jquery/jquery/blob/1.11.3/src/ajax/script.js#L57

https://github.com/jquery/jquery/blob/2.1.3/src/ajax/script.js#L44

No hay otra solución que usar un tiempo de espera o realizar la solicitud jsonp usted mismo.

Es complicado porque no estás haciendo una solicitud real de AJAX. JSON-P es un hack y causará todo tipo de problemas para ti.

Si realmente desea detectar errores de manera confiable, necesita usar una solicitud real de AJAX.