Вы можете или в явном виде задать тайм-аут при создании запроса. И в таком случае получите возможность отловить что соединение отвалилось именно по тайм-ауту.
Или не указывать значение тайм-аута при запросе. Тогда, если соединение «повиснет» надолго, то сработает браузерный тайм-аут (в разных браузерах значение тайм-аута разное, характерное время — пара минут). Но в таком случае, ваш обработчик получит условную «ошибку запроса», без конкретной причины (тайм-аут там, или сервер не найден, или ещё чего)