2015-12-10 5 views
2

У меня есть локальная веб-служба, работающая на одной из моих машин в локальной сети, которая является https с самозаверяющим сертификатом. Поскольку он самоподписан, Chrome (и другие браузеры) отклоняет вызов с моего javascript. Я получаю исключение (идет в случае сбоя), но с текстом как null и состояние равно нулю. Это одно и то же состояние и текст, когда он выходит из строя из-за проблемы с разрешением DNS (недоступный хост) или подобных ошибок. Есть ли способ определить точную ошибку? Я хотел бы идентифицировать проблему с самозаверяющим сертификатом, чтобы я мог попросить пользователя доверять сертификат вручную.Как определить точную причину сбоя вызова ajax?

Примечание: Мой сайт HTTPS с надлежащим сертификатом, однако местная служба, которую я хочу использовать, - https с самозаверяющим сертификатом.

ответ

1

Попробуйте это:

$.ajax({ 
     async: 'false', 
     type: 'GET', 
     url: 'http://', 
    success: function(data, textStatus){ 
     console.log('STATUS: '+textStatus); 
    }, 
    error: function(xhr, textStatus, errorThrown){ 
     console.log('STATUS: '+textStatus+'\nERROR THROWN: '+errorThrown); 
    } 
}); 
  • async:false Делает AJAX вызова синхронно, что делает его выполняется построчно, таким образом, ничего после вызова AJAX придется подождать, пока она не будет завершена.

Предупреждение: Синхронный вызов AJAX является устаревшим, поскольку это может повредить пользовательский опыт (сделав его ждать много).

Смежные вопросы