• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af jeppester | 18.12.2009 02:14

Ajax-problemer, responseText er tom.

Programmering
Jeg er i gang med et mindre ajax-projekt, hvor jeg vil lave en web-frontend til mpc.

Desværre kan jeg ikke få mit xmlhttprequest til at give nogen responseText.

Mit php-script til at styre mpx ser således ud:

<?php
$arg=$_GET["arg"];

$playerState=0;
$shuffle=0;
$repeat=0;

$output=array();
switch ($arg) {
case 0:
exec("mpc",$output);
break;
case 1:
exec("mpc toggle",$output);
break;
case 2:
exec("mpc stop",$output);
break;
case 3:
exec("mpc prev",$output);
break;
case 4:
exec("mpc next",$output);
break;
case 5:
exec("mpc random",$output);
break;
case 6:
//der kommer noget her
break;
}


if (substr($output[1],0,1)=="[") {
if (substr($output[1],0,9)=="[playing]") {
$playerState=1;
} elseif (substr($output[1],0,8)=="[paused]") {
$playerState=2;
}

//henter shuffle-information
$shuffle=strpos($output[2],"random");
$shuffle=substr($output[2],$shuffle+8,2);
if ($shuffle=="of") {
$shuffle=0;
} else {
$shuffle=1;
}
} else {
$playerState=3;
//henter shuffle-information
$shuffle=strpos($output[0],"random");
$shuffle=substr($output[0],$shuffle+8,2);
if ($shuffle=="of") {
$shuffle=0;
} else {
$shuffle=1;
}
}



echo $playerState . "," . $shuffle . "," . "0";
?>


Hvis jeg tjekker scriptet direkte i en browser fungerer det perfekt og browseren skriver præcis den tekst jeg skal bruge.

Det javascript der laver xmlhttprequest'en ser således ud:

var playbackReq;

function playback(arg) {
playbackReq=new XMLHttpRequest();
playbackReq.onload=playbackResponse();

playbackReq.open("GET","php/playbackControl.php?arg="+arg,true);
playbackReq.send(null);
}

function playbackResponse() {
alert(playbackReq.responseText);
}


"playback"-funktionen virker præcist som den skal, men af en eller anden grund får jeg kun en "alert" uden tekstindhold tilbage, i stedet for den tekst som bliver skrevet af mit php-script.

Jeg har prøvet at bruge "onreadystatechange" i stedet for "onload", og så at tjekke readystate'et i playbackResponce, men readystate'et ændrer sig ikke fra 0. Det sker selvom at både FF og chrome fortæller at mit xmlhttprequest er fuldført.

Nogen herinde der kan hjælpe mig videre?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer1

# 1

15 år 6 måneder siden

Permalink

Indsendt af jeppester den 22. december 2009 kl. 02:05

Permalink

Jeg fandt selv fejlen

En halv times ekstra gennemgang af koden gav resultater.

Det var i
playbackReq.onload=playbackResponse();
at "playbackResponse" ikke skulle afsluttes med parentesklammer.
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

den er sjov 2
PCLinuxOS 29
Reserve kernel og btrfs 3
En snak om Linux-kompatibel software 12
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !