2010-11-17 5 views
2

S'il vous plaît quelqu'un peut-il me dire pourquoi le code suivant semble bien fonctionner dans Internet Explorer, mais pas dans Chrome ou Firefox; J'ai essayé toutes les variantes que je peux penser en utilisant .get, .ajax, .load mais aucun ne semble vouloir travailler. Le fichier XML est l'un des exemples de w3c, et j'utilise jquery-latest.min.js:jQuery .get XML fonctionne dans IE mais pas Chrome, Firefox

$(document).ready(function() { 
$.get("http://www.w3schools.com/xml/simple.xml", function(data){ 
    $(data).find("food").each(function(){ 
    alert($(this).find("name").text()); 
    }); 
}); 
}); 

Merci pour regarder par-dessus ma question!

+0

http://en.wikipedia.org/wiki/Same_origin_policy –

Répondre

2

Il s'agit Same Origin Policy: IE permet des requêtes ajax sur un site Web hôte différent, mais d'autres navigateurs ne le font pas. Pour contourner cela, vous pouvez utiliser JSONP ou effectuer la requête sur un fichier php local qui lira le site distant avec file_get_contents si vous avez allow_url_fopen true.

+0

Et seulement * quelques * versions d'IE. – Guffa

+0

J'ai eu ce problème une fois donc c'était au moins un IE ^^ – MatTheCat

-2

Votre 2ème paramètre doit être vos données, pas votre fonction de rappel (documentation) ...

jQuery.get(url, [ data ], [ callback(data, textStatus, XMLHttpRequest) ], [ dataType ]) 
+0

Il n'envoie aucune donnée. –

+1

Comme la plupart des paramètres sont facultatifs, le paramètre data n'est pas requis. La méthode déterminera quels sont les paramètres de leur type. – Guffa

Questions connexes