MISE À JOUR
En réponse aux commentaires que vous avez sur les autres réponses, je veux juste assurer que je comprends bien la situation:
- Vous testez de votre ordinateur local, pas du disque dur local (ce qui signifie que votre URL dans le navigateur inclut "http://localhost", et non un emplacement sur votre disque dur.)
- Lorsque vous effectuez la réponse AJAX,
alert(...)
-si le résultat donne null, ou un équivalent.
- L'URL est valide et peut être chargée dans votre navigateur.
- L'URL que vous demandez se trouve dans le même domaine que la page d'origine.
Si ces choses sont vraies, alors je vais essayer ce qui suit faire un peu de dépannage:
- Utiliser Firefox et Firebug installer (nous aurons besoin pour déterminer si les requêtes AJAX ne parviennent pas, et pourquoi)
- Inclure some logging dans votre code à l'aide Firebug's console
- Utilisez la méthode de
ajax(...)
jQuery, et de gérer les erreurs en incluant un code d'enregistrement pour voir ce qui est arrivé. Vous pouvez peut-être éviter cette étape si la page sur laquelle vous vous trouvez n'a pas besoin d'une réponse visuelle pour une demande ayant échoué et que vous utilisez Firebug.
Voici le code que j'utiliserais pour cela:
$.ajax({
url: "http://stackoverflow.com/",
success: function(html) {
var responseDoc = $(html);
// Output the resulting jQuery object to the console
console.log("Response HTML: ", responseDoc);
}
// Handle request failure here
error: function(){
console.log("Failure args: ", arguments);
}
});
Si vous publiez la sortie de vos journaux Firebug, il devrait être plus facile de comprendre le problème et trouver une solution pour vous. Firebug enregistre également XMLHttpRequests
afin que vous puissiez voir exactement ce qui est envoyé vers et depuis le serveur, et Firebug va changer l'apparence de la requête si elle renvoie une sorte d'erreur de serveur (comment éviter # 3 des choses que j'ai listées au dessus).
Vous pouvez utiliser la méthode ajax(...)
, mais il serait plus facile d'utiliser get(...)
avec un rappel, comme ceci:
$.get("http://stackoverflow.com", function(html) {
var responseDoc = $(html);
});
responseDoc
sera un objet jQuery vous pouvez utiliser pour extraire des éléments de et traitez comme n'importe quel autre objet jQuery. Vous pouvez extraire des éléments du responseDoc
et les ajouter à votre document principal comme vous le souhaitez, en utilisant les méthodes jQuery manipulation.
Si vous avez besoin de la fonctionnalité supplémentaire fournie par la méthode $.ajax(...)
, vous utiliserez le code suivant.
$.ajax({
url: "http://stackoverflow.com/",
success: function(html) {
var responseDoc = $(html);
}
error: function(XMLHttpRequest, textStatus, errorThrown){
// Handle errors here
}
});
S'il vous plaît voir mon édition de ne pas recevoir un retour valide de l'appel find(). –
J'ai essayé votre exemple de code avec un doc html simple contenant juste un div avec id = 'someElement' et je n'ai pas pu l'obtenir pour alerter quoi que ce soit sauf null ou object [Object]. Pourriez-vous en ajouter quelques-uns pour expliquer comment utiliser l'objet retourné à partir de l'appel find(), s'il vous plaît? –