Проблема с CrunchBase API и jQuery $ .getJSON - PullRequest
0 голосов
/ 02 декабря 2010

Я пытаюсь просто отправить предупреждение с «именем», но, похоже, оно не работает. Совет

$(document).ready(function() {
$.getJSON("http://api.crunchbase.com/v/1/companies/permalink?name=Google", function(data) {
   alert("Hello: " + data.name);
  });
 });

Вот что содержит JSON:

{"crunchbase_url": "http://www.crunchbase.com/company/google",
 "permalink": "google",
 "name": "Google"}   

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Если вы не Crunchbase, вы не можете отправить этот запрос. По соображениям безопасности только www.crunchbase.com может отправлять запросы AJAX на www.crunchbase.com. (Представьте, что мы говорили о www.bankofamerica.com, и я вошел в систему. Было бы проблемой, если бы какой-либо сайт мог отправлять произвольные запросы на www.bankofamerica.com с моими прикрепленными файлами cookie.)

Документация API указывает, однако, на параметр JSON-P. Если вам интересно, вы можете посмотреть детали реализации, но важным моментом является то, что метод JSON-P способен обойти ограничение доменного имени, потому что API Crunchbase позволит вам.

URL-адрес http://api.crunchbase.com/v/1/company/google.js похож на ресурс, который вы упомянули, но этот конкретный URL-адрес позволяет использовать JSON-P, а тот, который вы опубликовали, - нет. jQuery позволяет вам сделать это легко: передайте URL на $.getJSON как http://api.crunchbase.com/v/1/company/google.js?callback=? (бит об обратном вызове важен!), и jQuery заполнит пробелы и обработает магический скрипт, загружаемый за кулисы. Это очень модно:)

0 голосов
/ 02 декабря 2010

Обычно вы бы использовали здесь JSONP, добавив &callback=? к своему URL, однако обратный вызов JSONP в этом случае не поддерживается, из документации crunchbase API:

Список объектов

Чтобы получить список всех объектов в определенном пространстве имен на CrunchBase, используйте URL-адрес в форме:

http://api.crunchbase.com/v/1/<plural-namespace>

Доступны множественные пространства имен:

  • компании
  • люди
  • финансовые организации
  • продукты
  • сервис-провайдеры

Это действие не поддерживает обратные вызовы JavaScript.

Нижняя строка - этосамое главное, вы увидите, что это: http://api.crunchbase.com/v/1/companies/permalink?name=Google&callback=callme по-прежнему приводит к обычному JSON, а не JSONP.

...