1

Téma: [vyřešeno] webové rozhraní na localhost

prosím pěkně...

narazil jsem na takovýto problém:

stránka na DEMO-macro
FUNGUJE perfektně

chtěl jsem se s SDS trochu více seznámit a vyrobit vlastní rozhraní ale user.htm stažen na lokál se sice zobrazí ale NEFUNGUJE - nezobrazuje hodnoty, nepřepíná, všude 0000

zkusil jsem jinou adresu s SDS ze sekce Pochlubte se! a je to stejné...

pokud zadám přímo do adresního řádku prohlížeče
6x.2xx.2xx.8x/get_sys[310]
prohlížeč správně zobrazí hodnotu - FUNGUJE

pokud použiju vlastní jednoduchou stránku s javascriptem a spustím ji v lokálního disku - hodnotu nepřečtu - NEFUNGUJE

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  
  <h1>Načtení teploty</h1>
  <p id="adresa">00.00.00.00</p>
  <div id="hodnota">0000</div>
    
  <script>
  var url="http://6x.2xx.2xx.8x/get_sys[310]";
  var id="hodnota";
  ajax_get (url, id);
  document.getElementById("adresa").innerHTML = url;
  document.getElementById(id).innerHTML = "9999";
  
  function ajax_get (url, id) {
        var objekt = false;
        if (window.XMLHttpRequest) {objekt = new XMLHttpRequest();}
        else if (window.ActiveXObject) {
          try {
            objekt = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (error) {
            objekt = new ActiveXObject("Microsoft.XMLHTTP");}
          }
        if(objekt){ 
            objekt.open("GET",url,true);
            objekt.onreadystatechange=function(){ 
                if(objekt.readyState==4 && objekt.status==200){
                    document.getElementById(id).innerHTML = objekt.responseText;
                }
            }
            objekt.send(null);
        }    
  }
  </script>
  
  </body>
</html>

pokud je v objekt.open v URL adresa jiného stroje tak se mi sice vrací readyState=4 ale status=0 a responseText je prázdný

už se s tím trápím docela dlouho a ani na netu jsem na nic smysluplného nenarazil

prosím o objasnění problému a nástin řešení

děkuji velmi....

2

Re: [vyřešeno] webové rozhraní na localhost

Cross site scripting

Kdyz se z lokalu snazis dostat javascriptem na jiny server, tak se moderni prohlizece tvari, ze to je ok, ale nic ti nevrati.

Zkousel jsem ten tvuj kod na lokalu s ip adresou meho sds a dopadl jsem uplne stejne jako ty.
Ale kdyz jsem si do firefoxu doinstaloval doplnek Force CORS (a zobrazil listu doplnku a na liste tento doplnek zapnul), tak uz to najednou fungovalo.

Vice tady:
http://stackoverflow.com/questions/1941340/empty-responsetext-from-xmlhttprequest
http://stackoverflow.com/questions/667519/firefox-setting-to-enable-cross-domain-ajax-request

Predpokladam, ze kdyz to user.htm sidli v sds a prohlizec si ho stahne, tak vi, ze to bylo z sds. Takze kdyz v tom javascriptu v url nebude ip adresa, ale pouze "/get_sys[310]", tak by to mohl prohlizec skousnout. Zkus to primo ze sds a bez ip adresy v url v javascriptu.

3

Re: [vyřešeno] webové rozhraní na localhost

Děkuji mnohokráte!!!

Už to jede!!!!!!

FORCE CORS - je řešení.

Přitom na těch stackcverflow.com jsem taky slídil - ale tohleto jsem přehlédl, už toho bylo moc, uff.

Ještě jednou díky moc!