ajax: function( url, options ) {
	/* 45 wierszy kodu */
		jqXHR = {
			/* 66 wierszy kodu*/
		};
	/* 84 wiersze kodu */
	if ( s.ifModified ) {
		if ( jQuery.lastModified[ cacheURL ] ) {
			jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
		}
		if ( jQuery.etag[ cacheURL ] ) {
			jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
		}
	}

	// Ustawienie poprawnego nagłówka w wypadku wysyłania danych
	if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
		jqXHR.setRequestHeader( "Content-Type", s.contentType );
	}

	// Ustawianie nagłówka Accept dla serwera (zależnie od typu danych)
	jqXHR.setRequestHeader(
		"Accept",
		/* 3 wiersze kodu */
	);

	// Sprawdzenie opcji headers
	for ( i in s.headers ) {
		jqXHR.setRequestHeader( i, s.headers[ i ] );
	}
	/* 16 wierszy kodu */
	transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );

	// W przypadku braku obiektu transportu ma miejsce automatyczne przerwanie
	if ( !transport ) {
		done( -1, "Brak obiektu transportu" );
	} else {
		jqXHR.readyState = 1;
		/* 12 wierszy kodu */
		try {
			state = 1;
			transport.send( requestHeaders, done );
		} catch ( e ) {
			/* 7 wierszy kodu */
		}
	}

	// Wywołanie zwrotne w wypadku zrealizowania wszystkiego
	function done( status, nativeStatusText, responses, headers ) {
		/* 30 wierszy kodu */
		if ( responses ) {
			response = ajaxHandleResponses( s, jqXHR, responses );
		}

		// Konwersja wykonywana w każdej sytuacji (dzięki temu pola responseXXX są zawsze ustawione)
		response = ajaxConvert( s, response, jqXHR, isSuccess );
		/* 72 wiersze kodu */
	}

	return jqXHR;
}