2 votes

Analyse de JSON externe avec JQuery $.getJSON ?

Je veux obtenir une citation de iheartquotes et l'ajouter à un div lorsque la page se charge. J'ai actuellement ce code mais je ne sais pas pourquoi il ne fonctionne pas.

    <script type="text/javascript">
    $(document).ready(function() {
        $.getJSON('http://iheartquotes.com/api/v1/random?format=json&callback=?', function(data) {
            $(".content").html(json.quote);
        });
    });
    </script>

Et le HTML dans le corps

<div class="content">
This will be replaced with a quote
</div>

2voto

Quentin Points 325526

L'URL renvoie JSON, et non JSON-P, donc il faut ne peut pas le lire en cross domain avec JS dans un navigateur.

Vous pourriez le faire côté serveur ou trouver un proxy tiers qui pourrait le convertir en JSON-P (peut-être YQL).

0voto

Harun Points 1939

Oui, je suis aussi d'accord avec @Quentin. Ce n'est pas possible côté client car vous essayez d'accéder à un autre domaine en raison de la politique "Same origin".

Vous pouvez donc appeler un webservice / une webméthode statique dans une page aspx (en utilisant des méthodes de page) à partir de javascript et de faire cela côté serveur et de récupérer les résultats côté client lui-même, où vous pouvez faire cela cross-domain.

Le code suivant peut vous aider à faire cela côté serveur,

Vous pourriez utiliser WebClient d'ailleurs :

     using (var client = new WebClient())
     {
      // Define data to be posted
        var values = new NameValueCollection
        {
            { "key1", "value1" },
            { "key2", "value2" },
        };

        // Send the POST request
         byte[] result = client.UploadValues("http://foo.com", values);

        // This will contain the cookie being set
        string cookie = client.ResponseHeaders[HttpResponseHeader.SetCookie];
    }  

J'espère que cela vous aidera...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X