2008-12-10 13 views
4

J'ai une application Web qui utilise la version actuelle de JQuery qui doit récupérer certains objets JSON à partir d'un service Web REST. J'utilise l'appel suivant à $ .getJSON:Appel getJSON fonctionnant sous IE 7 mais pas Firefox 3

$ .getJSON ("http://localhost:17245/Service.svc/?format=json", la fonction (données) {alert (data.id);});

Cet appel fonctionne très bien dans IE7 et je peux appeler le service sans problème dans Fiddler. Je suis passé par là dans Firebug, mais quand Firefox arrive à cette ligne, l'exécution javascript semble juste "mourir" sans erreur, pas de rappel, pas de rien. J'ai aussi utilisé $ .ajax et j'ai le même problème; fonctionne bien dans IE, rien dans Firefox.

Vous avez des idées? Je suis très nouveau à JQuery, alors s'il vous plaît soyez doux.

Merci, James

+0

comment est l'URL "http: // localhost: 17245/Service.svc /? Format = json" restfull? – redsquare

+0

pouvez-vous montrer le réel json retunred et je peux facturer cela localement – redsquare

+0

aussi voyez-vous la demande envoyée dans la console firewug winow - ou l'onglet net? – redsquare

Répondre

4

moi avons eu un problème similaire. La signature $ .getJSON est (url, data, callback) et je ne transmettais pas non plus l'argument data. Essayez ceci:

$.getJSON("http://localhost:17245/Service.svc/?format=json", {}, function(data) {alert(data.id);}); 
0

je courais des problèmes en utilisant les services Web de jQuery pendant un certain temps jusqu'à ce que je trouve le plugin ajaxdotnet.

0

Assurez-vous de traiter ajaxError, sinon vous ne verrez jamais la réponse si le serveur renvoie une erreur.

Votre appel à getJSON semble manquer de l'argument data, comme le dit palehorse. Je passe généralement null pour cela quand je n'en ai pas besoin.

+0

Si vous utilisez firebug, l'erreur devrait apparaître. Le panneau Réseau peut ensuite être utilisé pour afficher les en-têtes renvoyés. – Soviut

0

Si vous ne parvenez pas à faire fonctionner JQuery, essayez Fork. Regardez Fork.Ajax et Fork.Json. Ou utilisez le json2.js de Doug Crockford pour analyser JSON, avec n'importe quel wrapper XMLHttpRequest que vous aimez. J'ai regardé autour de diverses bibliothèques Javascript il y a quelque temps et pour la plupart elles étaient juste trop gonflées et bizarres pour moi; vous devez apprendre toutes les petites bizarreries des bibliothèques.

0

Je viens de rencontrer ce problème et j'ai trouvé que la cause première était une virgule de fin dans le JSON qui est retourné.

0

J'ai vu des problèmes similaires en raison d'un bogue dans l'extension Firebug. Essayez de le désactiver si vous l'avez installé.

1

Vous ne savez pas si cela a déjà été résolu, mais cela ressemble à des restrictions de script intersite dans Firefox. Il traite les numéros de port sur votre serveur ASP.NET de développement (localhost: 0000) comme des domaines différents. Essayez d'héberger à la fois: service et l'application Web, sur IIS qui n'utilise pas les numéros de port.

+0

J'ai le même problème et je pense que vous avez raison. Dans le panneau Firebug Net, il ne fait pas un GET, il fait une OPTIONS. Par conséquent, je pense que je dois comprendre comment fonctionne CORS (Cross Origin Resource Sharing). –