} catch( _ ) {}
// Do send the request
- try {
- xhr.send( ( s.hasContent && s.data ) || null );
- } catch( e ) {
- complete( 0, "error", "" + e );
- return;
- }
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( s.hasContent && s.data ) || null );
// Listener
callback = function( _, isAbort ) {
statusText = "";
}
- // Filter status for non standard behaviours
+ // Filter status for non standard behaviors
status =
+ // Most browsers return 0 when it should be 200 for local files
// Opera returns 0 when it should be 304
// Webkit returns 0 for failing cross-domain no matter the real status
- status === 0 ?
- (
+ !status ?
+ // All: for local files, 0 is a success
+ ( location.protocol === "file:" ? 200 : (
// Webkit, Firefox: filter out faulty cross-domain requests
!s.crossDomain || statusText ?
(
) :
// We assume 302 but could be anything cross-domain related
302
- ) :
+ ) ) :
(
// IE sometimes returns 1223 when it should be 204 (see #1450)
status == 1223 ?