• 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

16 år 1 måned 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

GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0
Linux i København 12.01.2026: Open source i det offentlige 0
Dansk distro Omarchy 0
KDE overgår indsamlingsmålet for 2025 med rekordstor støtte fra lokalsamfundet 0

Seneste aktivitet

BigLinux 1
E-mail blues 6
Linux Mint 22.3 - hvornår opdatere? 10
Canon-printer: Jeg savner "Ink-Toner Level"-meddelelse 10
billede af nuværende installation 2
mapper 4
LinuxIn live 9
Linux Debian på ekstern HD 4
usb disk *LØST* 2
Pacman kunne erstattes af en anden Rust baseret mulighed 1
Epson skanner software 8
Debian 1
Printer Epson ET-2865 problem 8
Winboat 4
Nu kan man skrive private beskeder 14
Mint på imac 2009 34
Firefox AI 7
Kunstig inteligens 6
Kopiering til min Samsung telefon 9
Installation af programmer 21

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !