Javascript Неожиданный токен НЕЗАКОННЫЙ - PullRequest
1 голос
/ 09 января 2012

У меня есть PHP-скрипт (fetchData.php), который выбирает некоторые данные и выводит их на страницу.

<?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 У меня есть другая страница, которая использует XMLHttpRquest для получения ответа от fetchData.php Вот JavaScript для этого. Он должен получить ответ и eval () его (создать массив с именем BWMFunction), а затем передать этот массив другой функции, которая у меня есть. Ошибка незаконного токена возникает, когда я пытаюсь выполнить eval () ответ.

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, поэтому любая помощь будет принята с благодарностью. Я довольно долго гуглял, но ни один из ответов мне не помог.

1 Ответ

6 голосов
/ 09 января 2012

У вас неверный javascript, возвращенный из fetchData.php, поэтому метод eval не работает.Вместо \" в выводе вы должны иметь простой ".Я ничего не знаю о PHP, но я готов поспорить, что это функция addslashes, которая наносит ущерб.Поэтому, возможно, вы могли бы попробовать что-то вроде:

echo($response["success"].";"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...