इस कोड को देखने के लिए प्रयास करें, और रिपोर्ट करें, एक संभव net::ERR_INSECURE_RESPONSE
मैं इस मुद्दे के साथ ही एक स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग कर रहा था, जिसे मैंने क्रोम सेटिंग्स में सहेजने के लिए नहीं चुना है। Https डोमेन तक पहुँचने और प्रमाणपत्र को स्वीकार करने के बाद, ajax कॉल ठीक काम करता है। लेकिन एक बार उस स्वीकृति को समय से पहले या इससे पहले स्वीकार कर लिया गया है, jQuery.ajax()
कॉल चुपचाप विफल रहता है: timeout
पैरामीटर मदद नहीं करता है और error()
फ़ंक्शन को कभी भी कॉल नहीं किया जाता है।
जैसे, मेरा कोड कभी भी कॉल success()
या error()
कॉल नहीं करता है और इसलिए हैंग हो जाता है। मेरा मानना है कि यह इस त्रुटि से जूरी की हैंडलिंग में एक बग है। मेरा समाधान error()
निर्दिष्ट टाइमआउट के बाद कॉल को बाध्य करना है ।
यह कोड फॉर्म के एक jquery ajax कॉल को मान लेता है jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
।
नोट: आप संभवतः setTimeout
कॉल करने के बजाय अपने UI के साथ सर्वश्रेष्ठ को एकीकृत करने के लिए फ़ंक्शन को बदलना चाहेंगे 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);
}