banansplitt™ Skrevet 7. oktober 2013 Del Skrevet 7. oktober 2013 Holder på å lære meg Ajax, men så har det plutselig skjedd noe. Alt har fungert fint helt til xmlHttpRequest.status har begynt å gi 0, over alt. Lokalt, på nett, i forskjellige browsere osv, helt sånn plutselig. Hvor er det egentlig feilen ligger? Koden er jo nøyaktig den samme som fungerte i går. var xmlHttp = createXmlHttpRequestObject(); function createXmlHttpRequestObject() { var xmlHttp; if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlHttp; } function process() { if (xmlHttp) { try { xmlHttp.open("GET", "list.php", true); xmlHttp.onreadystatechange = handleStateChange; xmlHttp.send(null); } catch (e) { alert("1: " + xmlHttp.readyState + " - " + xmlHttp.status); } } } function handleStateChange() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { try { handleResponse(); } catch (e) { alert("2: " + xmlHttp.readyState + " - " + xmlHttp.status); } } else { alert("3: " + xmlHttp.readyState + " - " + xmlHttp.status); } } } function handleResponse() { var xmlResponse = xmlHttp.responseXML; root = xmlResponse.documentElement; response = root.getElementsByTagName("response"); var stuff = ""; for (var i = 0; i < response.length; i++) { stuff += " FDSGDSRHGKJFLADSAEGFHSDFJKLSDNGJKLSDNGDSJKNGFSDJKNGFSDKJFNSDKJ "; } suggestions = document.getElementById("suggestions"); suggestions.innerHTML = stuff; } Lenke til kommentar
Feh Skrevet 7. oktober 2013 Del Skrevet 7. oktober 2013 Gadd aldri å ta meg tiden til å lære meg AJAX "the hard way". Vet ikke hva du er ute etter, eller om du MÅ skrive det i ren javascript, men anbefaler deg likevel å se på jQuery sin .ajax funksjon. Å hente noe produsert fra en php fil kan f.eks skrives så enkelt som det her: (function($) { $(document).ready(function() { $.ajax({ url: 'php/get_something.php', data: '', type: 'get', success: function(output) { $('#mydiv').html(output); } }); }); })(jQuery); 2 Lenke til kommentar
banansplitt™ Skrevet 7. oktober 2013 Forfatter Del Skrevet 7. oktober 2013 Det blir vel til at jeg benytter meg av det etterhvert, men først vil jeg lære meg hvordan det fungerer. Lenke til kommentar
Wedvich Skrevet 10. oktober 2013 Del Skrevet 10. oktober 2013 Du får statuskode 0 når det feiler før forespørselen har kommet ut fra klientsiden. Er dette skriptet og list.php-filen under samme domene? Med standard sikkerhetsinnstillinger kan du ikke kjøre cross-domain requests i JS, så da vil du få en sikkerhetsfeil lokalt, og status 0 hvis ikke domenet matcher nøyaktig. Hvis du vil teste det fra localhost finnes det noen workarounds som kan settes i innstillingene til nettleseren, men disse er forskjellige fra nettleser til nettleser så da må du neste google det for den du bruker. Lenke til kommentar
banansplitt™ Skrevet 10. oktober 2013 Forfatter Del Skrevet 10. oktober 2013 Scriptet og list.php ligger i samme mappe. Det som er uforståelig for meg er hvordan dette bare plutselig kan skje uten at jeg har rørt koden engang. Selv alle de "gamle" AJAX-scriptene har sluttet å fungere, og alt fungerte før. Lenke til kommentar
Feh Skrevet 10. oktober 2013 Del Skrevet 10. oktober 2013 Jeg kjørte scriptet på min localhost og fikk status 200 hvertfall. Lenke til kommentar
banansplitt™ Skrevet 10. oktober 2013 Forfatter Del Skrevet 10. oktober 2013 Se der ja, der fungerte det i alle fall på nett. Lenke til kommentar
banansplitt™ Skrevet 10. oktober 2013 Forfatter Del Skrevet 10. oktober 2013 Men der forvandlet den seg plutselig til 500.. Lenke til kommentar
Feh Skrevet 10. oktober 2013 Del Skrevet 10. oktober 2013 Hva slags server tester du med? Lenke til kommentar
banansplitt™ Skrevet 10. oktober 2013 Forfatter Del Skrevet 10. oktober 2013 Der kommer du inn på et tema der jeg kanskje har enda mindre peiling, men lokalt bruker jeg xampp/Apache og får status 0, mens "på nettet" bruker jeg domeneshop.no (linux-servere) og får status 500. Om det ga noen som helst mening. Lenke til kommentar
Aeyoun Skrevet 11. oktober 2013 Del Skrevet 11. oktober 2013 Du finner forklaringen om du åpner utviklerkonsollen i nettleseren din. Det er et enormt kraftig verktøy. Der finner du mer informasjon om state 0. HTTP/500 betyr at tjeneren ikke returnerte ressursen du ba om på grunn av en intern feil. Lenke til kommentar
Feh Skrevet 11. oktober 2013 Del Skrevet 11. oktober 2013 (endret) http://stackoverflow.com/questions/3825581/does-an-http-status-code-of-0-have-any-meaning http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp Les gjennom svarene, mulig det er noen tips der. Endret 11. oktober 2013 av Feh Lenke til kommentar
tvbord Skrevet 16. oktober 2013 Del Skrevet 16. oktober 2013 (endret) Nå er det dog en stund siden jeg har utført AJAX kall utenfor jQuery rammeverket. Hvorfor har du null value som send parameter i process funksjonen? Har du prøvd med en absolute path til php scriptet? Jeg ser heller ikke hvor du kaller process() i den koden, men regner med at du har kallet ett eller annet sted utenfor kodebiten du har postet. Men som Aeyoun sier: bruk utviklingsverktøyet i netleseren for alt det er verdt, jeg personlig foretrekker chromes devtools. Endret 16. oktober 2013 av tvbord 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å