我再次来到这里征求您的建议。我有一些 AJAX 调用,用于从我的编辑器(一个 PHP 在线编辑器)运行代码。 (大家可以打卡my site。)
我有一些 ajax 调用用于发送编辑器的数据和接收到的输出。
问题:for 循环没有正确执行。
下面的for循环程序执行成功
<?php for($i=10;$i>1;$i--){ echo "$i<br>"; } ?>
虽然这个for循环没有执行
<?php for ($x=0; $x<=10; $x++) { echo "The number is: $x <br>"; } ?>
当我通过 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("<b>Parse error</b>: ","");
$(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 中,我收到此错误:
Error: jQuery110106354119750428449_1386321122498 was not called
这是我来自服务器的 JSON 回调代码:
echo $_GET['callback']."(".json_encode($script_output).");";
请帮我解决这个错误。
最佳答案
经过一些测试,我认为问题是 url 中的 ++
,尝试编码:
encodeURIComponent
因为这对我有用:
for ($x=0; $x<=10; $x%2B%2B)
{
echo "The number is: $x <br>";
}
...
+ = %2B
服务器得到这个: ($x=0; $x<=10; $x ) 所以它是无限循环,因为 $x 保持为 0
关于javascript - 未调用 Ajax 回调。如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20420255/