2010-07-27 3 views
0

J'essaie de créer une requête get HTTP en utilisant la fonction jQuery getJSON. Je l'ai implémenté comme ceci ...La fonction getJSON renvoie toujours une valeur nulle

<script type="text/javascript"> 
$(function(){ 
$("#query").keyup(function(event) { 
     keyword = $("#query").val(); 
     $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", showdata); 
    }); 
}); 
function showdata(data, status) { 
    alert(data + ":" + status); 
} 
</script> 

Cela renvoie toujours la valeur null. J'ai vérifié les en-têtes HTTP, ils sont également null. Mais si j'utilise directement l'URL, elle affiche JSON dans la fenêtre du navigateur.

Qu'est-ce que je fais mal?

Certains ont suggéré que je devrais utiliser JSONP, mais dans l'URL que j'utiliserai réellement, il y a des informations sensibles que je ne veux pas révéler, donc je veux rester avec getJSON.

Cordialement

+0

en fait vos codes sont quelque peu similaires à http://api.jquery.com/jquery.getJSON/ exemple ... Je me demandais si vous faites quelque chose d'autre ... – Reigel

+0

@Reigel - la seule autre chose Je fais différent utilise une URL différente. J'ai essayé celui donné dans getJSON, cela aussi retourné null donc je pense qu'il y a un problème. – vikmalhotra

+0

est votre lien/URL sur le même nom de domaine? – Reigel

Répondre

1

@Reigel - pas son pas sur le même domaine.

votre problème est à cause de la same-origin-policy

+0

Est-ce que cela signifie que je dois utiliser JSONP? Aussi, pourquoi l'API du scintillement fonctionnait-elle ici - api.jquery.com/jquery.getJSON et pas mon API? – vikmalhotra

+0

c'est à cause de 'jsoncallback =?' Qui est JSONP ... – Reigel

+0

cela vous dérangerait-il d'expliquer pourquoi http://www.jsfiddle.net/htcxT/1/ fonctionne? C'est exactement le même code de OP – jAndy

0

Comme @Reigel a suggéré que le problème était de même origine-politique, j'ai donc décidé de créer un proxy en utilisant un code basé sur le serveur qui retourne le bon Json.

Questions connexes