eval()函数不起作用

时间:2017-10-15 16:57:41

标签: javascript php jquery json

我试图使用eval()函数从我的.php文件转换json字符串,但它不起作用。浏览器控制台说 SyntaxError:期望表达式,得到'<' ...

但是当我注释掉eval()所在的行时,并使用document.write(data);字符串出现......

这是我的代码..

<html>
<head>
    <script type='text/javascript' src='jquery.js'></script>
    <script type='text/javascript'>

    var go = function() {

        $.get("testjson.php", function(data) {

            var obj = eval("(" + data + ")");

            document.write(obj.name + "<br />");
            document.write(obj.date + "<br />");
        });
    }
    </script>
</head>
<body>
    <input type='button' value='go' onclick='go()' />
<body>
</html>

这里是我的testjson.php文件的代码......

<?php

    $msg = array(
        "name"=>"hi there Victor!",
        "date"=>"Monday 21st Feb 2010"
    );

    $myMsg = json_encode($msg);

    echo $myMsg;

?>

即时通讯使用最新版本的jquery ..

2 个答案:

答案 0 :(得分:0)

此处的评论和答案中有其他建议,关于使用$.getJSON()代替eval(),或将json指定为$.get()中的参数,这些都是好的建议。但是,它们并不是它不起作用的原因。

简单地说,在靠近底部的右括号后,你的var go = ....函数定义中缺少一个分号。

答案 1 :(得分:0)

代码现已修复!大声笑我不知道为什么,但我刚刚删除了我的.php代码下的评论html代码......它如何影响我的代码?它只是一个评论...:/