Я хочу делать вызовы AJAX на защищенный сервер, который использует самозаверяющий сертификат.В среде, где используется мое приложение, это нормально - я могу предоставить сертификат CA пользователям и заставить их установить его перед использованием приложения.Однако иногда пользователь пытается посетить приложение перед установкой сертификатов.В этих случаях приложение молча завершается сбоем - по крайней мере в Firefox (наиболее частый случай проблемы), кажется, что звонок молча умирает, даже не запуская обработчик ошибок.FWIW, если пользователь посещает реальную страницу на сервере, он получает предупреждение о подтверждении.
Я мог бы взломать обходной путь - скажем, сделать запрос сердцебиения / пинга и настроитьсторожевой таймер, чтобы увидеть, отвечает ли сервер вовремя - но это, похоже, хакерский.Я предпочел бы иметь возможность проверить соединение заранее.Каков «правильный» способ убедиться, что сервер, с которым вы хотите общаться, имеет доверенный сертификат из Javascript?Если это что-то меняет, я делаю свои AJAX-запросы через JQuery.
ОБНОВЛЕНИЕ: Здесь есть потрясающая изюминка.Оказывается, AJAX не был проблемой вообще.Я был уверен, основываясь на симптомах, что это было связано с самоподписанными сертификатами, но отсутствие ошибки AJAX беспокоило, особенно.учитывая спецификацию, связанную с ответом ниже.Другой член команды прибил его: обработчики ошибок AJAX не запускались, потому что JQuery никогда не загружался !Мы включили JQuery из другого субдомена нашего сайта, также размещенного на HTTPS - и пользователи добавили исключения для нашегоService.example.com, но не js.example.com.Очевидно, если вы указываете тег <script>
на ненадежное безопасное соединение, , что также завершается сбоем молча.
{/ headdesk}