Mam problem z AJAXem gdy w IE ze strony HTTP odwołuje się do strony HTTPS. Więcej szczegółów:
jest formularz z polem. Po wyjściu z pola wywoływana jest funkcja test(this), która ma za zadanie sprawdzić czy wprowadzona wartość jest prawidłowa.
Sprawdzenie polega na tym, że trzeba wywołać stronę: "https://dad-atlas.datasolutions.pl/karta.php?karta=" + wpisana_do_pola_wartość.
Wywołana strona zwraca TAK lub NIE (po sprawdzeniu otrzymanego kodu).
Skrypt działa w Firefox'e i w nowszym IE, ale w IE wersja <= 9 wywala się błędem przy operacji req.open("GET",.... komunikat błędu: "odmowa dostępu" (access denied).
Wygląda na to, że jest problem gdy polecenie ...open("GET", "https://..." odwołuje się do strony HTTPS. Odwołanie jest ze strony HTTP.
Czy ktoś mi powie co robię źle? Jak to obejść?
P.S. Z pewnych względów nie mogę zastosować JQuery. Jeżeli już jakiś freamework to tylko Mootools.
function test_kod(pole) { var req = createXMLHTTPObject(); // w IE zawsze się wywala na następnym poleceniu. W debugerze komunikat "brak dostępu" req.open("GET","https://dad-atlas.datasolutions.pl/karta.php?karta="+pole.value,true); req.setRequestHeader('User-Agent','XMLHTTP/1.0'); req.onreadystatechange = function () { if (req.readyState != 4) return; if (req.status != 200 && req.status != 304) { // alert('HTTP error ' + req.status); return; } if (req.responseText == "TAK") { //alert('sukces'); } else { //alert('nieprawidlowy kod'); }; } if (req.readyState == 4) return; req.send(); } var XMLHttpFactories = [ function () {return new XMLHttpRequest()}, function () {return new ActiveXObject("Msxml2.XMLHTTP")}, function () {return new ActiveXObject("Msxml3.XMLHTTP")}, function () {return new ActiveXObject("Microsoft.XMLHTTP")} ]; function createXMLHTTPObject() { var xmlhttp = false; for (var i=0;i<XMLHttpFactories.length;i++) { try { xmlhttp = XMLHttpFactories[i](); } catch (e) { continue; } break; } return xmlhttp; }