Ajax call back non appelé. Comment s'attaquer à cela?

Encore une fois, je suis là pour vos suggestions. J'ai un appel AJAX pour l'exécution du code de mon éditeur qui est un éditeur PHP en ligne. (Vous pouvez vérifier sur mon site .)

J'ai un appel ajax pour envoyer les données de l'éditeur et la sortie reçue.

Problème: pour la boucle non exécutée correctement.

  1. Ci-dessous pour le programme en boucle est exécuté avec succès

    <?php for($i=10;$i>1;$i--){ echo "$i<br>"; } ?> 
  2. Alors que cette boucle n'est pas exécutée

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

Lorsque je lancer ce fichier via FireBug, je reçois une réponse indiquant que la boucle for est devenue une boucle infinie en cas de seconde boucle (ci-dessus).

Voici maintenant mon rappel 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' }); 

J'ai réintégré cet éditeur localement et l'ai exécuté; Dans FireBug, je reçois cette erreur:

Erreur: jQuery110106354119750428449_1386321122498 n'a pas été appelé

Voici mon code de rappel JSON du serveur:

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

Aidez-moi à faire face à cette erreur.

Entrez la description de l'image ici Après quelques tests, je pense que le problème est le ++ dans l'URL, essayer d'encoder:

 encodeURIComponent 

Car cela a fonctionné pour moi:

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

 + = %2B 

Le serveur a obtenu ceci: ($ x = 0; $ x <= 10; $ x) donc c'est une boucle infinie, car $ x reste 0

Remplacez votre code par

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

Et essayez d'exécuter à nouveau votre appel ajax.