没有调用Ajax回调。 如何解决这个问题?
我再次提出你的建议。 我有一些AJAX调用来从我的编辑器运行代码,这是一个PHP在线编辑器。 (你们可以在我的网站上查看。)
我有一些ajax调用发送编辑器的数据和接收输出。
问题:for循环未正确执行。
-
以下for循环程序成功执行
1;$i--){ echo "$i
"; } ?> -
虽然这个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调用。