Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem HTML + JS - Proč někde data získám a někde ne ?

Ahoj,

Mám router, v routeru je zapojeno kabelem PC.
V PC mám nainstalovaný VirtualBox, ve VirtualBoxu beží Linux a na Linuxu Apache (IP: 192.168.0.105).
Pak mám v routeru připojen fyzický server který má IP 192.168.0.108.

Když zadám v PC do url 192.168.0.108 vrátí se mi nějaký text.
Když ale vytvořím index.html na serveru který běží ve VirtualBoxu (IP: 192.168.0.105) a do něj vložím

<!DOCTYPE html>
<html>
<head>
<script>
function test(){
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.onreadystatechange = function (){
if (xhr.readyState == 4) alert(xhr.responseText);
};
xhr.open("GET", 'http://192.168.0.108');
xhr.send();
}
test();
</script>
</head>
<body>
</body>
</html>

nedostanu vůbec nic, alert je prázdný. Proč, přece netahám data z jiné domény.. Jsem stále ve stejné síti. za radu předem děkuji ?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Stejná síť, ale jiná adresa. To je to samé, jako by to byla jiná doména.
Wikan 18.11.2015 19:46
Wikan
Bez urážky, to víš nebo si to mysliš ?
Miranda 18.11.2015 19:52
Miranda
To vím. Prohlížeči je nějaká místní síť ukradená, porovnává pouze adresy.
Wikan 18.11.2015 20:00
Wikan
Jen se ptám.. pokud je to pravda, nechápu, proč to třeba v tabletu připojeném přes wifi normálně fun…
Miranda 18.11.2015 20:03
Miranda
Teď jsme si asi nerozuměli. Prohlížeč nedovoluje pomocí AJAXu načítat data z jiné adresy, než ze kte…
Wikan 18.11.2015 20:07
Wikan
Rozumíme si zatím dobře, server který vrací data má IP 192.168.0.108. HTML + JS kterým chci načíst t…
Miranda 18.11.2015 20:14
Miranda
A jaký tam máš prohlížeč? Ne všechny musí mít tuhle bezpečnostní pojistku implementovanou.
Wikan 18.11.2015 20:18
Wikan
Tak to netuším v čem to Cordova spouští. Teď jsem ještě zjistil, že to dokonce funguje přímo i v XDK…
Miranda 18.11.2015 20:23
Miranda
Mohlo by to fungovat všude, pokud si na serveru správně nastavíš CORS.
Wikan 18.11.2015 20:28
Wikan
Tudy cesta nevede, CORS na tom serveru nastavit nejde... konfigurace se změnit nedá..
Miranda 18.11.2015 20:34
Miranda
Tak zkus ještě JSONP.
Wikan 18.11.2015 20:38
Wikan
Hm, ty to chápeš jak je to myšleno ? Asi ano když jsi mi to poslal.. Já to nechápu, můžeš o trošičku…
Miranda 18.11.2015 20:46
Miranda
JSONP makes sense only when used with a script element. For each new JSONP request, the browser must…
Wikan 18.11.2015 20:53
Wikan
To jsem se tam dočetl taky... :-) Problém je, že to nechápu...
Miranda 18.11.2015 21:10
Miranda
Prostě si na stránku přidáš tag script, který ti zajistí načtení dat, která potřebuješ. Ty data ale…
Wikan 18.11.2015 21:13
Wikan
Už tomu rozumím, díky. To taky není možné, neexistuje žádný způsob jak to v tom HW upravit. :-( Řeše…
Miranda 18.11.2015 22:11
Miranda
Proč to vůbec musí načítat data z jiné adresy, než kde běží webový server?
Wikan 18.11.2015 22:14
Wikan
Asi takto, ten HW na IP 192.168.0.108 co vrací ta data je monoblok, do kterého připojíš RJ45 konekto… nový
Miranda 18.11.2015 22:57
Miranda
Dobrá, ale ty stránka už snad běží na nějakém normálním webovém serveru, ne? A server může číst z ji… nový
Wikan 19.11.2015 08:44
Wikan
Teď jsem moc nepochopil jakou stánku přesně myslíš. nový
Miranda 19.11.2015 11:03
Miranda
Data z toho .108 si vytahuj pomocou PHP na serveri, a ne javascriptami od klienta. Preco to nerobis… nový
MM.. 19.11.2015 11:07
MM..
Proč to nedělám tak je z více důvodů. Tam kde to zařízení ..108 je, nebude internetové připojení a v… nový
Miranda 19.11.2015 12:41
Miranda
Tak si tam php server nainstaluj. Inac nechapem jak chces z JS pristupovat na nieco co nema internet… poslední
MM.. 19.11.2015 13:23
MM..
Stránka, na které máš ten skript. nový
Wikan 19.11.2015 11:34
Wikan
Aha, tak není na serveru, jedná se jen o html soubry které jdou spustit kdekoli v PC v prohlížeči. nový
Miranda 19.11.2015 12:42
Miranda
Potrebujes tzv. reverse proxy. Da se udelat treba pomoci Apache Web serveru. nový
MaSo 18.11.2015 22:15
MaSo

Rozumíme si zatím dobře, server který vrací data má IP 192.168.0.108.
HTML + JS kterým chci načíst ta data má IP vždy jinou. (což nefunguje, ale to jsi zdůvodnil.. OK)
Ale jak jsem psal, když to HTML + JS spustím v tabletu na kterém běží Android, data z IP 192.168.0.108 okamžitě získám. Což právě vyvrací tvé tvrzení.

JSONP makes sense only when used with a script element. For each new JSONP request, the browser must add a new <script> element, or reuse an existing one. The former option—adding a new script element—is done via dynamic DOM manipulation, and is known as script element injection. The <script> element is injected into the HTML DOM, with the URL of the desired JSONP endpoint set as the "src" attribute.

Už tomu rozumím, díky. To taky není možné, neexistuje žádný způsob jak to v tom HW upravit. :-( Řešení by bylo někam vecpat další php server, jelikož php server někde na webu je taky problém, musí to být vše na interní síti a musí to fungovat i když nepojede net.. Nějaký nápad ?

Asi takto, ten HW na IP 192.168.0.108 co vrací ta data je monoblok, do kterého připojíš RJ45 konektor, připojíš napájení + nějaké čidla ze kterých to tiskne ty texty. Co na tom běží neví ani ten číňan co to sestrojil. Jinak žádné nastavení není možné natož tam nahrát nějaký html kód :-(

Zpět do poradny Odpovědět na původní otázku Nahoru