我有一个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,所以任何帮助都将不胜感激。我现在已经搜索了很长一段时间,但没有一个答案对我有帮助。
答案 0 :(得分:6)
您从fetchData.php
返回了无效的javascript,这就是eval
方法崩溃的原因。您应该在输出中使用简单\"
而不是"
。我完全不了解PHP,但我准备打赌它造成损害的addslashes
函数。所以也许你可以尝试以下方面:
echo($response["success"].";");