2010-08-24 5 views
0

Je suis juste en train de tester un simple appel ajax sur mon serveur en utilisant jqueryAjax appelle à JQuery retourne toujours avec succès, mais le paramètre « data » est une chaîne vide

J'ai un fichier HTML comme celui-ci

<!doctype html> 
<html> 
    <head> 
    <script type="text/javascript" src="jquery.js"></script> 

    <script type="text/javascript"> 
     $(function(){ 
      $("#connect_button").click(function(event){ 
       $("#placeholder").load("http://mysever/AjaxResponse.php"); 
      }) 
     }); 
    </script> 
    </head> 
    <body> 
    <button id="connect_button" type="button">Connect</button> 
    <span id="placeholder">This has not worked</span> 
    </body> 
</html> 

AjaxResponse.php, qui fonctionne quand on y accède à partir du navigateur statiquement, ressemble à ce

<?php 
    echo "This now works"; 
?> 

les pistes de code et le remplacer se produit, le seul problème est que la page renvoie une chaîne vide provoquant la durée d'être vide

Si je change le code pour utiliser un autre appel jQuery tels que .get $() le rappel est renvoyé le textStatus de « succès » et une valeur de données de « »

Qu'est-ce qui me manque ici? Les serveurs doivent-ils être configurés pour répondre aux appels Ajax. Est-ce que j'utilise mal jquery?

+0

Quelle est l'URL que vous utilisez pour votre fichier HTML ci-dessus dans le navigateur? – NAVEED

+0

** http: //mysever/AjaxResponse.php** ne semble pas être le bon chemin pour votre fichier ** AjaxResponse.php **. Utilisez cette URL directement dans votre navigateur pour voir si elle renvoie l'affirmation. J'ai placé le fichier HTML et ** AjaxResponse.php ** dans le même dossier et cela fonctionne pour moi. Si votre fichier HTML et ** AjaxResponse.php ** seront dans le même dossier, alors vous ferez comme ceci: '$ (" # placeholder "). Load (" AjaxResponse.php ");' – NAVEED

Répondre

1

Est-ce que votre AjaxResponse.php est sur le même domaine? Les appels Ajax ne fonctionneront pas sur plusieurs sites.

+0

Merci. Je courais le fichier html localement. Quand j'ai mis le html sur le serveur et ai changé la référence de jQuery à une référence relative cela a fonctionné bien. – Willbill

0

Si vous voulez, vous pouvez vérifier si la page chargée a quelque chose en elle comme ceci:

$(function(){ 

$('#connect_button').live('click', function(){ 

content = $.get('test.php',function(data){ 
content = data; 

if (content != ""){ 
$('#placeholder').html(content); 
}else{ 
$('#placeholder').html('This has not worked'); 
} 

}); 
}); 
}) 

De cette façon, si les données renvoyées est vide, il sera mis « Cela n'a pas fonctionné » dans l'espace réservé id.

+0

Dans ce cas, les données sont renvoyées sous la forme d'une chaîne vide afin d'afficher "Cela n'a pas fonctionné". – Willbill

Questions connexes