Javascript意外的令牌ILLEGAL

fru*_*cup 1 javascript xmlhttprequest token

我有一个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"].";")); 
?>
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到输出: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();
}
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用StackOverflow,所以任何帮助都将不胜感激.我现在已经搜索了很长一段时间,但没有一个答案对我有帮助.

Dar*_*rov 6

您返回了无效的javascript,fetchData.php这就是该eval方法崩溃的原因.而不是\"在输出中你应该很简单".我完全不了解PHP,但我准备打赌它的addslashes功能导致了损坏.所以也许你可以尝试以下方面:

echo($response["success"].";"); 
Run Code Online (Sandbox Code Playgroud)