একটি সম্ভাব্য সন্ধানের জন্য এবং এই প্রতিবেদনের জন্য এই কোডটি ব্যবহার করে দেখুন net::ERR_INSECURE_RESPONSE
আমি স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করে, যা আমি Chrome সেটিংসে না সঞ্চয় করার জন্য বেছে নিয়েছি, এই সমস্যাটি আমারও ছিল। Https ডোমেন অ্যাক্সেস করার পরে এবং শংসাপত্র গ্রহণ করার পরে, এজাক্স কলটি ঠিকঠাক কাজ করে। কিন্তু একবার সেই স্বীকৃতিটি সময়সীমা শেষ হয়ে গেলে বা এটি প্রথম গৃহীত হওয়ার আগে, jQuery.ajax()
কলটি নিঃশব্দে ব্যর্থ হয়: timeout
প্যারামিটারটি সাহায্য বলে মনে হয় না এবং error()
ফাংশনটি কখনও কল হয় না ।
যেমন, আমার কোড কখনো পায় একটি success()
বা error()
কল এবং সেইজন্য হ্যাং। আমি বিশ্বাস করি যে এই ত্রুটিটি জেকুরির পরিচালনা করার ক্ষেত্রে এটি একটি বাগ। আমার সমাধানটি error()
নির্দিষ্ট সময়সীমার পরে কলকে বাধ্য করা ।
এই কোডটি ফর্মের একটি 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);
}