2012-01-08 4 views
1

일부 데이터를 가져 와서 페이지로 출력하는 PHP 스크립트 (fetchData.php)가 있습니다.Javascript 예기치 않은 토큰 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"].";")); 
?> 

현재 출력을 볼 수 있습니다 http://justicecraft.net/worldmap/fetchData.php 내가 fetchData.php 의 응답을 얻기 위해 XMLHttpRquest를 사용하는 다른 페이지가 여기에 그것을 위해 자바 스크립트를합니다. 응답을 받고, eval()을 호출하여 (BWMFunction이라는 배열을 생성 한 다음) 그 배열을 다른 함수로 전달해야합니다. 응답을 eval()하려고하면 Illegal token 오류가 발생합니다.

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(); 
} 

이것은 StackOverflow에서 처음이므로 어떤 도움을 주시면 감사하겠습니다. 나는 지금 꽤 많은 시간 동안 주위에 인터넷 검색을 해봤지만 아무도 나를 도왔다.

답변

6

fetchData.php에서 반환 된 잘못된 자바 스크립트가 있는데 그 이유는 eval 메소드가 다운됩니다. 출력에 \" 대신 간단한 "을 입력해야합니다. 나는 PHP에 관해서는 전혀 알지 못한다. 그러나 나는 손상을 일으키는 그 함수 인 addslashes이 약간의 돈을 내기에 준비가되어있다.

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

내가 오른쪽 와우 –

+0

하하, 그래서 분명 생각하지만, 그것은 일 : 그래서 어쩌면 당신의 라인을 따라 뭔가를 시도 할 수 있습니다! 왜냐하면 내가 문제를 없애려고했기 때문에 addslashes()를 추가했기 때문에 그것은 아이러니합니다.하지만 그것은 완전히 다른 문제 였을 것입니다! 감사! – fruitcup

+0

@DrAgonmoray,이 게시물을 통해 문제 해결에 도움이 되었다면 [답변으로 표시] 고려해야합니다 (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work).) 옆에있는 체크 표시를 클릭하십시오. –

관련 문제