2012-01-08 3 views
1

J'ai un script PHP (fetchData.php) qui récupère des données et les affiche sur une page.Javascript Jeton inattendu ILLEGAL

<?php 
require 'config.php'; 
require 'jsonapiSDK.php'; 
$api = new JSONAPI($ip_address, $jsonapi_port, $username, $password, $salt); 
$response = $api->call('BWMFunction'); 
echo(addslashes($response["success"].";")); 
?> 

Vous pouvez voir ici la sortie: http://justicecraft.net/worldmap/fetchData.php J'ai une autre page qui utilise un XMLHttpRquest pour obtenir la réponse de fetchData.php Voici le JavaScript pour elle. Il est supposé prendre la réponse, et eval() pour créer un tableau appelé BWMFunction, puis passer ce tableau à une autre fonction que j'ai. L'erreur de jeton illégal se produit lorsque j'essaie d'évaluer() la réponse.

function fetchData() { 
    var xmlhttp; 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      res = xmlhttp.responseText; 
      alert(res); 
      eval(res); 
      generate(BWMFunction); 
     } 
    } 
    xmlhttp.open("GET", "fetchData.php", true); 
    xmlhttp.send(); 
} 

C'est ma première fois sur StackOverflow, donc toute aide serait appréciée. J'ai fait un googled autour pendant un bon moment maintenant, mais aucune des réponses ne m'a aidé.

Répondre

6

Vous avez invalidé javascript retourné de fetchData.php qui est la raison pour laquelle la méthode eval se bloque. Au lieu de \" dans la sortie, vous devriez avoir " simple. Je ne connais strictement rien à PHP mais je suis prêt à parier que c'est la fonction addslashes qui cause les dégâts. Alors peut-être que vous pourriez essayer quelque chose dans le sens de:

echo($response["success"].";"); 
+0

Je pense que votre droite haha ​​ –

+0

Wow, si évident, mais ça a marché! C'est ironique parce que j'ai ajouté les addslashes() parce que j'essayais de me débarrasser d'un problème, mais ça a dû être un autre problème! Merci! – fruitcup

+0

@DrAgonmoray, si cet article vous a aidé à résoudre le problème que vous étiez en train d'examiner, vous devriez le considérer comme une réponse (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) en cliquant sur la coche à côté d'elle. –

Questions connexes