以下のように、ページ(ajax.php)内のJavaScriptコード(forloop)を評価するときに、サーバー側でAJAXを使用してサーバーを呼び出しています。
<?php
if($part==1){
?>
for(var i=0; i<5;i++){
alert(i);
}
<?php
}
Javascript ページ (ajax.js) でコールバックを使用すると、次のようになります。
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
if(xmlHttp.responseText!=''){
var sc = document.createElement('src');
sc.innerHTML = xmlHttp.responseText;
eval(sc.innerHTML); // Error in first case (forloop in server)
}
}
}
}
クロムでエラーが発生します:
SyntaxError: Unexpected token ;
ajax.php ではなく ajax.js ページに forloop コードを配置すると、次のようにすべて正常に動作します。
<?php
if($part==1){
?>
execute();
<?php
}
この場合、ajax.js の execute() 関数の下では、すべて正常に動作します。
function execute(){
for(var i=0; i<5;i++){
alert(i);
}
}
これが発生する理由と、このエラーを防ぐ方法を教えてください。
ご協力ありがとうございました!