![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 7.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie mogę odczytać pliku xml wygenerowanego przez PHP.
Jeśli skopiuję stronę do pliku .xml i odczytam ją za pomocą AJAX to działa. (url = "strona.xml") Jeśli natomiast odczytuję plik za pomocą AJAX bezpośrednio z serwera (url= "//localhost/strona") nie działa:/ Nie widzi żadnego znacznika. Prosze o pomoc! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 9 Dołączył: 22.03.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No chyba żartujesz
![]() ![]() Może podajesz złą ścieżkę dostępu. Używasz request.responseXML? Serwer musi obsługiwać XML, czyli serwować plik XML z odpowiednim nagłówkiem HTTP. Pokaż jakiś kod. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli serwer po prostu wysyła tobie plik XML z innym typem jak text/xml, to dorzuć to
Kod request.overrideMimeType('text/xml'); przed request.send() Druga sprawa, to gdzie masz rozszerzenie pliku w tym drugim url? Jeśli nie posidasz na serwerze jakiegoś rodzaju content-negotiation, to musisz podawać pełne nazwy plików. Trzecia sprawa, gdzie masz http: przed //localhost/strona ? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 7.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
ad1. W pierwszym przypadku używam serwera ale stronę mam zapisaną jako xml (http://serwer/moj_folder/dane1.xml) i to działa. Jeśli natomiast użyję ścieżki (http://serwer/ulice/1) gdzie dane są generowane dynamicznie przez PHP już nie widzi niczego. Używam request.responseXML
ad2. dorzuciłem "request.overrideMimeType('text/xml');" ale to nic nie dało. Może pokaże wam kawałek kodu i znajdziecie tu przyczynę czemu to nie działa: if(XMLHttpRequestObject){ var lista = document.getElementById('lista'); var url = "http://serwer/ulice/1" // działa gdy użyję http://serwer/moj_folder/dane1.xml XMLHttpRequestObject.open("GET", url); XMLHttpRequestObject.onreadystatechange = function() { if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { var xml = XMLHttpRequestObject.responseXML; var ulice = xml.getElementsByTagName('street'); } XMLHttpRequestObject.send(null); } |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
w twoim przypadku będzie to XMLHttpRequestObject.overrideMimeType('text/xml'); - piszę tak na wszelki wypadek.
Jeśli .responseText zwraca poprawny dokument XML, to wtedy .responseXML powinno zwrócić go sparsowanego (jeśli nie jest wysyłany jako XML, to przy zastosowaniu overrideMimeType('text/xml'); ) Kod if(XMLHttpRequestObject){
var lista = document.getElementById('lista'); var url = "http://serwer/ulice/1" // działa gdy użyję http://serwer/moj_folder/dane1.xml XMLHttpRequestObject.open("GET", url); XMLHttpRequestObject.overrideMimeType('text/xml'); XMLHttpRequestObject.onreadystatechange = function() { if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { var xml = XMLHttpRequestObject.responseXML; var ulice = xml.getElementsByTagName('street'); } XMLHttpRequestObject.send(null); } |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 7.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie pomogło. Pojawił mi się błąd w linii gdzie go napisałem:
XMLHttpRequestObject.open("GET", url); XMLHttpRequestObject.overrideMimeType('text/xml'); XMLHttpRequestObject.onreadystatechange = function() // "Obiekt nie obsługuje tej właściwości lub metody" { if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { var xml = XMLHttpRequestObject.responseXML; var ulice = xml.getElementsByTagName('street'); } XMLHttpRequestObject.send(null); } W wersji którą wcześniej napisałem przeglądarka nie pokazuje żadnych błędów. Niby wszystko działa ale danych nie wyświetla Ok juz dziala ![]() Wielkie dzieki za kazda podpowiedz. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Witaj na forum!
Chciałem tylko zwrócić uwagę, że jeżeli wklejasz próbkę kodu używaj znaczników BBcode, ok? Pozdrawiam! -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
to może daj te overrideMimeType przed .send();
Sprawdź, czy w IE dobrze wywołujesz obiekt XHR? Ten post edytował paziek 12.08.2008, 18:50:38 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 07:47 |