dimdal Skrevet 23. august 2011 Del Skrevet 23. august 2011 Hei! Er helt amatør på dette med javascript, men har tatt i bruk jQuery for å kunne hente ut og behandle litt XML. Problemet mitt er at jeg må hente XML-en fra en URL som ikke ender på .xml (det kalles visstnok xml-over-http). XML-en skal hentes herfra: http://www.jernia.no/xml1/getProducts/?assoc=7EF11A7C-D69C-4CD4-A3BE-32D74E0E42F7&accountid=7125576&accountguid=F69DB22D-2B1F-460C-99E6-45512AD7C70D&altss= Jeg bruker denne funksjonen til å hente XML-en: $.ajax({ type: "GET", url: "http://www.jernia.no/xml1/getProducts/?assoc=7EF11A7C-D69C-4CD4-A3BE-32D74E0E42F7&accountid=7125576&accountguid=F69DB22D-2B1F-460C-99E6-45512AD7C70D&altss=", dataType: "xml", success: function(xml) { } Jeg ser Firebug-konsollen at den ikke klarer å hente XML. Dersom jeg laster ned/opp XML-en manuelt på server, og deretter peker url dit så fungerer det knirkefritt. Noen som vet hvordan jeg går frem for å fikse dette? Lenke til kommentar
mikk- Skrevet 23. august 2011 Del Skrevet 23. august 2011 At URL-en ikke ender på .xml skal ikke ha noe med saken å gjøre. Den vil uansett sendes over HTTP (som er den måten det meste av data sendes mellom webservere). Tror det er en blindvei å henge seg opp i det Hva står det i Firebug-konsollen? Jeg er ikke sikker, men mistenker at problemet ditt kan ligge i at du spør etter en fil på en annen server (et annet domenenavn). Med mindre du faktisk utvikler på jernia.no. (Se litt på "cross domain ajax" for jquery) Lenke til kommentar
dimdal Skrevet 23. august 2011 Forfatter Del Skrevet 23. august 2011 Hei! Jeg har dessverre ikke muligheten til å utvikle direkte på jernia.no, så må operere på mitt eget domene . Her er det som vises i konsollen for henholdsvis en lokal forespørsel etter getProducts.xml og en forespørsel etter den URL-en jeg viser til ovenfor: Jeg ser også at det som dukker opp under "Headers" er ganske forskjellig fra det som vises på den lokale forespørselen: En kompis nevnte det kunne være noe galt med headerne i selve XML-en. Men er det ikke noen mulighet for at jeg kan fortelle jQuery/Ajax hva slags headere den skal bruke? Lenke til kommentar
mikk- Skrevet 23. august 2011 Del Skrevet 23. august 2011 (endret) Hei igjen, Det virker i utgangspunktet som en merkelig feil. Det ser ut som du ikke får noen HTTP-headere i retur, og heller ingen eksplisitt feilmelding/feilkode. Kort sagt, du burde ha fått en kode 404 (not found) eller 500 (internal server error) eller liknende. Når du ikke får noen feilkode, blir det vanskelig å vite hva som er galt. Likevel, hvis jeg skal prøve meg på et skudd i mørket, jeg så på fila du prøver å laste inn, og ser at den er på godt og vel 1.5 MB med XML. I AJAX-sammenheng er det ekstremt mye, så du skal ikke se bort ifra du kan ha passert en eller annen grense. AJAX brukes vanligvis for å overføre små datamengder. Ville ha testet med en mindre fil for å se om det er her feilen ligger. Uansett ville jeg ha sett på andre måter å løse "hovedproblemet" på enn å laste inn fila asynkront. Det spørs litt på hvilken funksjon siden din skal ha, men i utgangspunktet hadde det nok vært bedre å løse dette problemet på serversiden (dvs mellomlagre Jernia sin XML-fil på serveren og behandle dataene der, i stedet for å sende hele XML-fila rett til brukeren (nettleseren).). Hvis dette er en ekstern side (for publikum), så er nok dette omtrent eneste gode løsning. Endret 23. august 2011 av mikk- Lenke til kommentar
dimdal Skrevet 24. august 2011 Forfatter Del Skrevet 24. august 2011 Ja, jeg tenker også at løsningen blir å mellomlagre filen et eller annet sted. Jeg fant en plugin til jQuery som heter "Uploadify" som lar brukeren laste opp XML-en selv. Scriptet skal kun brukes veldig internt til å telle opp / sjekke status på en del produkter fra XML-feeden, så det er ikke så nøye om det er litt ekstra jobb en gang i blant. Takk for hjelpen mikk-! Lenke til kommentar
mikk- Skrevet 24. august 2011 Del Skrevet 24. august 2011 Bare hyggelig det Du får forske litt. I utgangspunktet tror jeg dette er lettere å løse ved serverside-programmering (PHP, Django), men er knall om du klarer å løse det med JavaScript. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå