没有调用Ajax回调。 如何解决这个问题?

我再次提出你的建议。 我有一些AJAX调用来从我的编辑器运行代码,这是一个PHP在线编辑器。 (你们可以在我的网站上查看。)

我有一些ajax调用发送编辑器的数据和接收输出。

问题:for循环未正确执行。

  1. 以下for循环程序成功执行

    1;$i--){ echo "$i
    "; } ?>
  2. 虽然这个for循环没有执行

     <?php for ($x=0; $x<=10; $x++) { echo "The number is: $x 
    "; } ?>

当我通过FireBug运行时,我得到一个响应,说for循环在第二个循环(上图)的情况下变成了一个无限循环。

现在这是我的AJAX回调:

 $.ajax({ type: 'GET', url: 'exec.php', data: code, success: function(data) { alert(data); $(loader).addClass("hidden"); var stdout = $(form).children('.stdout'); if (data.search("Parse error")>0) { var str = data.replace("Parse error: ",""); $(stdout).html(str); $(stdout).removeClass('hidden'); } else { $(stdout).html(data); $(stdout).removeClass('hidden'); } }, error: function(req, status, err) { alert(status); alert(err); }, dataType: 'JSONP' }); 

我在本地重新实现了这个编辑器并运行它; 在FireBug中我收到此错误:

错误:未调用jQuery110106354119750428449_1386321122498

这是来自服务器的我的JSON回调代码:

 echo $_GET['callback']."(".json_encode($script_output).");"; 

请帮我解决这个错误。

在此处输入图像描述 经过一些测试,我的问题是url中的++ ,尝试编码:

 encodeURIComponent 

因为这对我有用:

 for ($x=0; $x<=10; $x%2B%2B) { echo "The number is: $x 
"; }

 + = %2B 

服务器得到这个:($ x = 0; $ x <= 10; $ x)因此它是无限循环,因为$ x保持为0

替换你的代码

 "; } echo $opstr; exit(); ?> 

并尝试再次执行您的ajax调用。