Javascript parse xml din fișierul local

    var xmlReq,
        xmlDoc;

    xmlReq = new XMLHttpRequest();
    xmlReq.open("GET", filename, false); //synchronous GET
    xmlReq.send(null);

    xmlDoc = xmlReq.responseXML;
    alert(xmlDoc);

Încerc să folosesc codul menționat mai sus pentru a încărca un xml din sistemul de fișiere local. variabila nume de fișier este o cale relativă (../Gfx/Sprite/test_sprite.xml) și funcționează atât în ​​local, cât și atunci când rulează pagina de pe un server web. Ceea ce face acest lucru ciudat, este că pot vedea că fișierul xml se încarcă (folosind inspector web în safari), dar xmlReq.responseXML/xmlReq.responseText returnează nul...

Ce greșesc aici?


person Robin Heggelund Hansen    schedule 04.07.2011    source sursă
comment
Cred că trebuie să utilizați acest xmlDoc = xmlReq.responseXML; numai în interiorul onreadystatechange   -  person Sandeep Manne    schedule 04.07.2011
comment
Am încercat asta și apoi am rescris codul (vezi editarea) încă fără trabuc...   -  person Robin Heggelund Hansen    schedule 04.07.2011
comment
Dar, fără a utiliza onreadystatechange, acest lucru nu va funcționa, faceți o solicitare asincronă, ceea ce înseamnă că controlul nu va aștepta până când cererea este procesată, așa că trebuie să legați un ascultător de evenimente pentru a verifica modificările de stare ale acestei solicitări. Așa că înlocuiește-l cu unul vechi.   -  person Sandeep Manne    schedule 04.07.2011
comment
boolul „fals” din xmlReq.open ar trebui să facă cererea sincronă... În plus, am încercat onreadystatechange în modul în care ați sugerat, dar nu a funcționat...   -  person Robin Heggelund Hansen    schedule 04.07.2011


Răspunsuri (1)


Webkit nu permite solicitări AJAX pe sistemul de fișiere local.

person Dr.Molle    schedule 04.07.2011
comment
Există vreo altă modalitate prin care pot încărca acel fișier xml? - person Robin Heggelund Hansen; 04.07.2011
comment
Ar trebui să fie posibil să folosiți niște flash pentru a prelua fișierul xml - person Dr.Molle; 04.07.2011