2009-07-27 8 views
1

J'écris mon premier bit de jQuery, et j'ai un problème avec jQuery.get(). J'appelle ça;

$.get(url, updateList); 

où updateList est défini comme tel;

function updateList(data) 
{ 
    if (data) 
    { 
     $('#contentlist').html(data); 
    } 
    else 
    { 
     $('#contentlist').html('<li><a href="#" id="synclink">Nothing found. Try again</a></li>'); 
    } 
} 

La fonction fonctionne, et updateList est appelé. Cela fonctionne très bien dans Internet   Explorer. Cependant, dans Firefox, le paramètre data est toujours vide. Je m'attendrais à ce qu'il soit rempli avec le contenu de la page Web que j'ai passé en tant qu'URL. Est-ce que je l'utilise mal?

Notes;

  • à Firebug, j'ai activé le panneau Net, et je reçois la demande montrant. Je reçois un 200 OK. L'onglet Headers semble très bien, tandis que les panneaux Response et HTML sont vides.
  • La page que j'essaye de télécharger est une page HTML droite - il n'y a aucun problème avec le code de serveur.
  • La page avec JavaScript est locale à ma machine; la page que je télécharge est hébergée sur Internet.
  • J'ai essayé de vérifier l'URL en la copiant-collant à partir de ma page dans le navigateur - elle renvoie heureusement du contenu.
  • L'erreur se produit même en mode sans échec de Firefox - espérons que cela exclut les ajouts indésirables.
+1

avez-vous parcouru le code du serveur pour vous assurer qu'il renvoie des données? –

+0

Vérifiez votre code serveur puis – zakovyrya

+4

Complètement sans rapport, mais je dois le dire: Hier, j'étais à une course de chevaux pour la première fois de ma vie. J'ai juste * dû * parier sur le cheval appelé "Ajax". Il est arrivé en quatrième position, j'ai donc perdu mes 2 euros. S'il vous plaît continuez, rien à voir ici. – balpha

Répondre

7

Vous ne serez probablement pas en mesure de le faire en raison de la sécurité inter-domaine. Internet   Explorer vous permettra d'Ajax domaine distant lors de l'exécution de file://, mais Firefox et Chrome ne seront pas. Essayez de mettre les deux fichiers sur le même serveur et voir si cela fonctionne (il devrait).

+0

Oui. Une fois que je suis passé du protocole de fichier à http, il a commencé à fonctionner. Je viens de créer un site local dans IIS et j'y ai accédé comme http: // localhost/... et voilà! –

1

Vous aurez probablement besoin de corriger votre page avec XHR car elle devrait renvoyer du contenu. Copiez coller le lien dans l'onglet Firebug net et créez un nouvel onglet, puis éditez cette page avec votre éditeur de texte afin qu'il renvoie le contenu.

+0

La page que j'interroge est un simple fragment html dans un fichier .html. La navigation sur le site montre le contenu. Devrais-je faire autre chose? –

0

Stick alerte (ou point d'arrêt dans Firebug) et de voir si les données retournées ne sont pas un objet (ou s'il y a des données). Si le premier - vous devrez peut-être forer dans l'objet pour obtenir votre balisage

+0

Les données renvoyées sont vides. il n'y a pas d'objet. –

+0

Au point que les gens ont déjà fait - avez-vous votre HTML que vous interrogez sur une URL différente? Si vous l'avez sur un domaine totalement différent, vous ne serez pas en mesure de contourner les restrictions (sauf si vous implémentez un proxy comme indiqué ici http://is.gd/1P5iw) si vous avez un sous-domaine, vous pouvez le faire (voir http://is.gd/1P5oz) Maintenant - si vous faites $ .ajax au lieu de $ .get, vous pouvez aussi avoir le rappel "onerror" - avez-vous essayé? – Bostone

Questions connexes