Načítání XML do JavaScriptu

Jitka

Načítání XML do JavaScriptu
« kdy: 24. 06. 2013, 06:38:24 »
Ahojte,

jak nejjednodušeji načíst pár dat z externí stránky s XML do jiné s JS?
« Poslední změna: 24. 06. 2013, 08:51:55 od Petr Krčmář »


ertwertwertwe

Re:XML -> JS
« Odpověď #1 kdy: 24. 06. 2013, 07:15:11 »

N

Re:Načítání XML do JavaScriptu
« Odpověď #2 kdy: 24. 06. 2013, 12:06:29 »
Mně to funguje tedy jen při načítání z lokálního souboru, ale jakmile se snažím načíst odjinud:
Kód: [Vybrat]
XMLHttpRequest cannot load ... Origin file is not allowed by Access-Control-Allow-Origin
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
Nějaké nápady? Díky

N

Re:Načítání XML do JavaScriptu
« Odpověď #3 kdy: 24. 06. 2013, 12:30:06 »
Tak jsem zatím akorát vyčetl, že toto "cross-site" nejde..  :-\

DK

Re:Načítání XML do JavaScriptu
« Odpověď #4 kdy: 24. 06. 2013, 12:41:11 »
no nejde :) nejjednodussi reseni je naparsovat to xml na strane serveru a odesilat potrebna data treba jako json

udajne by cross-site melo jit pomoci JSONP, ale zkusenosti s tim nemam


N

Re:Načítání XML do JavaScriptu
« Odpověď #5 kdy: 24. 06. 2013, 12:44:29 »
Bohužel to musím vyřešit na straně klienta. Btw, lze stáhnout celé neco.xml na lokální disk pomocí JS a následně načíst? :)

A

Re:Načítání XML do JavaScriptu
« Odpověď #6 kdy: 24. 06. 2013, 13:26:55 »
Jde to načíst pomocí php skriptu a vložit to do JS
toto url se vloží do toho js - např:
http://tvojestranka.cz/tento-skript.php?url=http://www.seznam.cz
Načtení dat je ale pomalejší než přímo přes JS.

<?
$stranka = file_get_contents($_GET['url']);
echo $stranka;
?>

Makovec

Re:Načítání XML do JavaScriptu
« Odpověď #7 kdy: 24. 06. 2013, 13:45:36 »
@A: no to ale určitě není "na straně klienta"

Máš přístup k serveru nebo doméně odkud ta data pochází? Alespoň možnost někam "tam" umístit javascript který si browser stáhne aby byl ze "ze stejné domény" (tj. nešlo o cross-site scripting)? Pak by se s tím dalo něco dělat.

Ale vzhledem k charakteru původního dotazu ti rovnou říkám že tahle úloha je o level nebo dva výš než s čím máš pravděpodobně doposavad zkušenost.

A

Re:Načítání XML do JavaScriptu
« Odpověď #8 kdy: 24. 06. 2013, 14:25:53 »
Mám svůj server, kde běží PHP. Tam umístím tento PHP skript i soubor s javascriptem (např xyz.js).
PHP stáhne neco.xml z jiného serveru a zobrazí to na mém serveru - např. http://ma-domena.cz/skript.php?url=http://cizi-server.cz/neco.xml - tady budou načtena data z cizího serveru - to neco.hml.
Tento odkaz bude vložen v tom JS (xyz.js). Javascript si ty data načte, protože bude běžet na stejné doméně jak php skript.

N

Re:Načítání XML do JavaScriptu
« Odpověď #9 kdy: 24. 06. 2013, 14:37:45 »
Mám svůj server, kde běží PHP. ...

Jak už připomněl Makovec, klient nemá PHP. Představte si např. nějaké zařízení, z kterého lze vyčíst data v XML, které následně chcete zobrazit např. v miniaplikaci (gadget) na ploše u klienta. Máte k dispozici HTML, CSS, JS, AJAX, aj., ale určitě ně PHP server.

N

Re:Načítání XML do JavaScriptu
« Odpověď #10 kdy: 24. 06. 2013, 14:45:04 »
Ale vzhledem k charakteru původního dotazu ti rovnou říkám že tahle úloha je o level nebo dva výš než s čím máš pravděpodobně doposavad zkušenost.

Například tady používají nejspíš Ajax.. nějaké další řešení, aby to nebylo příliš kostrbaté?

Makovec

Re:Načítání XML do JavaScriptu
« Odpověď #11 kdy: 24. 06. 2013, 14:55:52 »
Ale vzhledem k charakteru původního dotazu ti rovnou říkám že tahle úloha je o level nebo dva výš než s čím máš pravděpodobně doposavad zkušenost.

Například tady používají nejspíš Ajax.. nějaké další řešení, aby to nebylo příliš kostrbaté?

Nemám čas se na to podívat podrobně ale ten "gadget" bude mít pravděpodobně jiný sandbox model než html stránka stažená odněkud v browseru, tj. jiná pravidla pro same origin policy.

Makovec

Re:Načítání XML do JavaScriptu
« Odpověď #12 kdy: 24. 06. 2013, 15:04:12 »
Mám svůj server, kde běží PHP. ...

Jak už připomněl Makovec, klient nemá PHP. Představte si např. nějaké zařízení, z kterého lze vyčíst data v XML, které následně chcete zobrazit např. v miniaplikaci (gadget) na ploše u klienta. Máte k dispozici HTML, CSS, JS, AJAX, aj., ale určitě ně PHP server.

A jak to testujete? V browseru a nebo nějakém testovacím gadgetu?

Nenechte se mýlit tím pokud se obojí programuje v HTLM/JS, bepečnostní sandbox bude pravděpodobně jiný, případně u gadgetu konfigurovatelný.

HTML/JS jsou tu jen programovací "jazyky" použité v dost jiném kontextu, typu aplikace.

Podobně můžete zkusit napsat rozšíření do browseru.

Jaký je vlastně přesný požadavek?

N

Re:Načítání XML do JavaScriptu
« Odpověď #13 kdy: 24. 06. 2013, 18:10:24 »
...
Jaký je vlastně přesný požadavek?

Především funkčnost a zobrazení dat (jedno jestli doplňěk pro browser či gadget), nicméně měl jste pravdu. Gadgety mají Security přístup k externím datům povoleny, více tady, kde je tato vlastnost napsaná mimo plno užitečných tipů. Tedy mám hotovo ve WinGadget.  ;)

Neví náhodou někdo, jestli je toto povoleno i v extensions pro Google Chrome, než se po tom začnu pídit?

Makovec

Re:Načítání XML do JavaScriptu
« Odpověď #14 kdy: 24. 06. 2013, 18:58:52 »
...
Jaký je vlastně přesný požadavek?

Především funkčnost a zobrazení dat (jedno jestli doplňěk pro browser či gadget), nicméně měl jste pravdu. Gadgety mají Security přístup k externím datům povoleny, více tady, kde je tato vlastnost napsaná mimo plno užitečných tipů. Tedy mám hotovo ve WinGadget.  ;)

Neví náhodou někdo, jestli je toto povoleno i v extensions pro Google Chrome, než se po tom začnu pídit?

Tohle náhodou vím, psal jsem si extenzi k Chrome - seznam povolených domén ze kterých lze stahovat data se tam dá nastavit.