Javascript - Internetverbindung - IOS9
Hallo zusammen.
Folgendes "Problem". Vielleicht hat ja jemand einen Tipp und kann helfen.
Bisher (bis Version IOS9) klappte folgende Sache in Javascript immer ohne Probleme.
Irgendwas muss nun aber verändert worden sein, so dass diese Funktion nicht mehr klappt.
Im folgenden Script kann mit einem Menü eine Webseite angesteuert werden. Bevor aber eine Verbindung zu der Seite aufgebaut wird, überprüft das Script mit einem kurzen Verbindungsversuch, eine Art Ping, ob eine Internetverbindung existiert. Ist keine Verbindung vorhanden (weil das iPhone offline ist), erscheint eine Meldung.
Der Fehler ist nun, dass obwohl das iPhone online ist und obwohl die Webseite(n) existieren, dennoch immer die Meldung erscheint, dass keine Verbindung existiert. Das ist erst seit IOS9. Als ob Apple eine Art Firewall eingebaut hat.
Jemand ne Idee?
Folgendes "Problem". Vielleicht hat ja jemand einen Tipp und kann helfen.
Bisher (bis Version IOS9) klappte folgende Sache in Javascript immer ohne Probleme.
Irgendwas muss nun aber verändert worden sein, so dass diese Funktion nicht mehr klappt.
Im folgenden Script kann mit einem Menü eine Webseite angesteuert werden. Bevor aber eine Verbindung zu der Seite aufgebaut wird, überprüft das Script mit einem kurzen Verbindungsversuch, eine Art Ping, ob eine Internetverbindung existiert. Ist keine Verbindung vorhanden (weil das iPhone offline ist), erscheint eine Meldung.
Der Fehler ist nun, dass obwohl das iPhone online ist und obwohl die Webseite(n) existieren, dennoch immer die Meldung erscheint, dass keine Verbindung existiert. Das ist erst seit IOS9. Als ob Apple eine Art Firewall eingebaut hat.
{
$.ajax({
url: 'http://www.google.de',
success: function(result){
document.getElementById("footer_deep").innerHTML = "Prüfe Internetverbindung";
document.getElementById("footer_deep").style.background = "green";
document.getElementById("footer_deep").innerHTML = "Sie sind offline.<br>Bitte Internetverbindung testen.";
document.getElementById("footer_deep").style.background = "red";
location.href = "http://www.zielseite.de";
},
error: function(result){
document.getElementById("footer_deep").innerHTML = "Sie sind offline.<br>Bitte Internetverbindung testen.";
document.getElementById("footer_deep").style.background = "red";
setInterval(function () {
document.getElementById("footer_deep").innerHTML = "";
document.getElementById("footer_deep").style.background = "";}, 10000);
}
});
}
Jemand ne Idee?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283958
Url: https://administrator.de/contentid/283958
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
1 Kommentar
Moin,
ganz einfach, weil das ein JavaScript Cross-Domain Request ist den Google mit der SAMEORIGIN-Policy im Header und der iOS-Browser ablehnt.
Mach dir also besser eine eigene PHP-Seite die das checkt und dir das Ergebnis via Ajax zurückgibt. Du musst also nur irgendeine Seite welche auf deinem Server liegt "anpingen" dann läuft das auch, weil es dann kein XSS ist.
Oder du suchst dir eine Seite die im Header access-control-allow-origin: * definert, damit funktioniert der Cross-Domain Request
Gruß grexit
ganz einfach, weil das ein JavaScript Cross-Domain Request ist den Google mit der SAMEORIGIN-Policy im Header und der iOS-Browser ablehnt.
Mach dir also besser eine eigene PHP-Seite die das checkt und dir das Ergebnis via Ajax zurückgibt. Du musst also nur irgendeine Seite welche auf deinem Server liegt "anpingen" dann läuft das auch, weil es dann kein XSS ist.
Oder du suchst dir eine Seite die im Header access-control-allow-origin: * definert, damit funktioniert der Cross-Domain Request
Gruß grexit