Как загрузить внешний JSON из скрипта на веб-странице? - PullRequest
6 голосов
/ 14 июля 2009

Я пытаюсь загрузить данные из внешнего .js файла, содержащего представление группы данных в формате json. Я не могу понять, как получить доступ к данным внутри страницы. Я уверен, что это действительно легко, и мне не хватает чего-то простого! сейчас я пытаюсь это:

  $(document).ready(function(){
    $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",
        function(data){
            alert(data.company_url);
        });
  });

... что, очевидно, очень неправильно, так как ничего не происходит. Я пытался загрузить его в тег <script>, но firebug говорит мне, что он даже не загружался. как я мог облажаться? в любом случае, я готова выдернуть свои волосы, и думаю, что это займет у кого-то еще около 15 секунд.

Ответы [ 3 ]

13 голосов
/ 14 июля 2009

этот файл данных не имеет записи company_url. Кроме того, файл .js подается с типом text/javascript mime, когда он должен обслуживаться с application/json (или application/x-javascript, поправьте меня)

Реальная причина , конечно, в том, что вам нужно добавить ?callback=? к вашему URL. Тогда все будет работать. Итак, это будет выглядеть так:

$(document).ready(function(){
    $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js?callback=?",
        function(data){
            alert(data.homepage_url);
        });
  });
3 голосов
/ 14 июля 2009

Я посмотрел на данные JSON. Похоже, что там нет company_url. Вы можете хотеть homepage_url

$(document).ready(function(){
   $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",
      function(data){
             alert(data.homepage_url);
         });
   });
1 голос
/ 14 июля 2009

С первого взгляда выглядит хорошо. Вы уверены, что ответ правильный JSON? Возможно, тип контента неверный? Является ли исходный URL на точном домене, совпадающем с вашей страницей? (включая протокол и номер порта)

редактирование:

Я загрузил ваш JSON, и свойство "company_url" отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...