Javascript 为什么服务器中JS代码的eval()会导致:SyntaxError:意外令牌;

Javascript 为什么服务器中JS代码的eval()会导致:SyntaxError:意外令牌;,javascript,php,ajax,Javascript,Php,Ajax,当我在页面(AJAX.php)中评估javascript代码(forloop)时,我正在使用AJAX调用服务器端,如下所示: <?php if($part==1){ ?> for(var i=0; i<5;i++){ alert(i); } <?php } 我在chrome上遇到一个错误: SyntaxError: Unexpected token ; 如果我将forloop代码放在页面ajax.js而不是ajax.php中,则一切正常

当我在页面(AJAX.php)中评估javascript代码(forloop)时,我正在使用AJAX调用服务器端,如下所示:

<?php
if($part==1){
?>
    for(var i=0; i<5;i++){
        alert(i);
    }
<?php
}
我在chrome上遇到一个错误:

SyntaxError: Unexpected token ;
如果我将forloop代码放在页面ajax.js而不是ajax.php中,则一切正常,如下所示:

<?php
if($part==1){
?>
    execute();
<?php
}

执行();

问题解决了。问题是我使用document.createElement('src')而不是document.createElement('script')创建脚本元素。对不起


非常感谢大家

console.warn(xmlHttp.responseText)可能会有帮助。请确认innerhtml的响应是否为(var i=0;iWhy究竟是在一个不存在的元素中将Javascript解析为HTML?特别是,
document.createElement('src')有什么问题什么是
元素?不过,您的方法太复杂了-创建
脚本
标记,然后将其
src
属性设置为PHP脚本路径,完成。如果您使用eval执行代码,则根本不需要创建脚本元素,只需对代码进行eval。使用脚本的innerHTML属性是专业的或者,避免使用eval并将响应指定为脚本元素的文本属性。
<?php
if($part==1){
?>
    execute();
<?php
}
function execute(){
    for(var i=0; i<5;i++){
        alert(i);
    }
}