Спробуйте цей код, щоб переглянути та повідомити про можливе net::ERR_INSECURE_RESPONSE
У мене виникала ця проблема також, використовуючи сертифікат, який я підписав самостійно, який я не вирішив зберігати в налаштуваннях Chrome Після доступу до домену https та прийняття сертифіката, виклик ajax працює нормально. Але після того, як прийняття закінчилося або до його прийняття, jQuery.ajax()
виклик виходить з ладу: timeout
параметр не здається допомогою, і error()
функція ніколи не викликається.
Як такий, мій код ніколи не отримує дзвінка success()
або error()
дзвінка, тому він висить. Я вважаю, що це помилка в обробці jquery цієї помилки. Моє рішення - змусити цеerror()
дзвінок після заданого часу очікування.
Цей код передбачає виклик формату ajax jquery форми jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
.
Примітка: Ви, швидше за все, захочете змінити функцію в межах, setTimeout
щоб найкраще інтегруватися з вашим інтерфейсом користувача: а не викликати дзвінки alert()
.
const MS_FOR_HTTPS_FAILURE = 5000;
$.orig_ajax = $.ajax;
$.ajax = function(params)
{
var complete = false;
var success = params.success;
var error = params.error;
params.success = function() {
if(!complete) {
complete = true;
if(success) success.apply(this,arguments);
}
}
params.error = function() {
if(!complete) {
complete = true;
if(error) error.apply(this,arguments);
}
}
setTimeout(function() {
if(!complete) {
complete = true;
alert("Please ensure your self-signed HTTPS certificate has been accepted. "
+ params.url);
if(params.error)
params.error( {},
"Connection failure",
"Timed out while waiting to connect to remote resource. " +
"Possibly could not authenticate HTTPS certificate." );
}
}, MS_FOR_HTTPS_FAILURE);
$.orig_ajax(params);
}