Autor Zpráva
Enko
Profil *
Ahoj,
potřebuji ověřovat dostupnost souboru nebo domény na jiném serveru v internetu. Vyplodil jsem toto:
  <script type="text/javascript">
 function check_wan(){
   if(window.XMLHttpRequest){
     // code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp=new XMLHttpRequest();
   }
   else{
     // code for IE6, IE5
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.open("HEAD", "/index.php",true);
   xmlhttp.onreadystatechange=function(){
     if(xmlhttp.readyState==4){
       if(xmlhttp.status==200){alert("URL Exists!");}
       else if (xmlhttp.status==404){alert("URL doesn't exist!");}
       else{alert("Status is "+xmlhttp.status);}
     }
   }
   xmlhttp.send(null);
 }
 </script>
 
Jenže to funguje jen při kontrole souborů na tom samém serveru. Je nějaká možnost, jak kontrolovat dostupnost souborů na jiném serveru v internetu? Tato funkce mi při pokusu získání onformace vrací "Status is 0". Nějaké nápady? Případně jiné řešení?
Děkuji za každou pomoc
_es
Profil
Enko:
Jenže to funguje jen při kontrole souborů na tom samém serveru.
Áno, to je bezpečnostné obmedzenie.

Je nějaká možnost, jak kontrolovat dostupnost souborů na jiném serveru v internetu?
Sú určité obmedzenejšie možnosti, napríklad pokúsiť sa stiahnuť súbor ako obrázok, JS skript či CSS štýl.
Zaujímal by ma účel niečoho takého. Buď je ten súbor z iného servera treba a so súhlasom jeho vlastníka sa použije - ak to bezpečnostné obmedzenia umožňujú, alebo sa v opačných prípadoch nepoužije. Na čo zisťovať „dostupnosť“ cez JS?
Enko
Profil *
Potřebuji ověřit dostupnost WAN sítě z Mikrotik routerboardu a protože to Mikrotik neumí, potřebuji to zkusit alespoň na straně klienta.

Jinak už jsem něco našel třeba zde http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/
_es
Profil
Enko:
Najjednoduchšie bude načítavať JS súbor. JQuery je len obal okolo základných vecí, nejde s ním nič, čo by nešlo aj bez neho.
Enko
Profil *
_es:
Popiš mi prosím, jak to přesně myslíš.
_es
Profil
Enko:
jak to přesně myslíš
No dáš si do toho JS na inom serveri niečo také, aby bolo zistiteľné, že sa súbor načítal, napríklad definíciu nejakej premennej, alebo aj len:
Do stránky na vhodné miesto:
<script src="odkaz na súbor"></script>
A v súbore budeš mať:
document.write("WAN sieť je dostupná")
Enko
Profil *
Nemám možnost to otestovat, ale chápu li to správně, tak to bude nějak takto?
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  <!-- v tomto souboru mam definovanou promenou x --!>
  <script type="text/javascript" src="http://domena/js/var.js"></script>
  <script type="text/javascript">
 function check_wan(){
   if(x){
     document.write("Internet je dostupný!");
   }
   else{
     document.write("Internet není dostupný!");
   }
 }
 </script>
  </head>
  <body>

   <script>
   check_wan();
   </script>
  </body>
</html>
_es
Profil
Enko:
if(x){
To pri neexistencii premennej „vyhodí“ chybu.
try{x; document.write("Internet je dostupný!")}catch(e){document.write("Internet není dostupný!")}
Enko
Profil *
_es:
Supr, aneb v jednoduchosti je krása! :)
Děkuju
_es
Profil
Enko:
Pri testovaní v [#8] ani nemusí mať premenná hodnotu, testuje sa len jej existencia, stačí aj var x;
Enko
Profil *
JJ, vím :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: