Разобрать внешний JSON с помощью JQuery $ .getJSON? - PullRequest
2 голосов
/ 11 июля 2011

Я хочу получить цитату из iheartquotes и добавить ее в div при загрузке страницы. В настоящее время у меня есть этот код, но я не знаю, почему он не будет работать

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

И HTML в теле

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

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

URL-адрес возвращает JSON, а не JSON-P, поэтому вы не можете прочитать его в междоменном домене с помощью JS в браузере.

Вместо этого вы можете использовать эту сторону сервера илисторонний прокси, который может конвертировать его в JSON-P (возможно, YQL).

0 голосов
/ 11 июля 2011

Да, я тоже согласен с @Quentin.Это невозможно на стороне клиента, так как вы пытаетесь получить доступ к другому домену из-за одинаковой политики происхождения.

Таким образом, вы можете назвать webservice / статическим веб-методом в aspxpage (используя методы page) из javascript и выполните эту работу на стороне сервера и получите результаты на стороне клиента, где вы можете выполнить этот междоменный домен.

Следующий код может помочь вам сделатьэто на стороне сервера,

Вы можете использовать WebClient в этом отношении:

     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];
    }  

Надеюсь, это поможет ...

...