CrunchBase API和jQuery $ .getJSON的问题

时间:2010-12-02 03:10:05

标签: jquery ajax json getjson

我试图简单地发送一个带有“名字”的警报,但它似乎不起作用。建议?

$(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 个答案:

答案 0 :(得分:2)

如果您不是Crunchbase,则无法发送该请求。出于安全原因,只有www.crunchbase.com可以向www.crunchbase.com发送AJAX请求。 (想象一下,我们正在谈论www.bankofamerica.com并且我已经登录。如果任何网站都可以通过附加我的cookie向www.bankofamerica.com发送任意请求,那将是一个问题。)

然而,API documentation确实表示JSON-P选项。如果您感兴趣,可以查看实现细节,但重要的是JSON-P技术能够绕过域名限制,因为Crunchbase的API将允许您。

网址http://api.crunchbase.com/v/1/company/google.js与您提到的网址类似,但此特定网址允许您使用JSON-P,而您发布的网址却不允许。 jQuery允许您轻松地执行此操作:将URL传递给$.getJSON作为http://api.crunchbase.com/v/1/company/google.js?callback=?(关于回调的位很重要!),jQuery将填充空白并处理幕后加载的魔术脚本。这很奇特:)

答案 1 :(得分:0)

通常你在这里使用JSONP,将&callback=?添加到你的网址然而在这种情况下不支持JSONP回调,来自{{ 3}}:

  

列出实体

     

要检索CrunchBase上某个命名空间中所有实体的列表,请使用以下格式的URL:

     

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

     

多个可用的命名空间是:

     
      
  • 公司
  •   
  •   
  • 金融组织
  •   
  • 产品
  •   
  • 服务提供商
  •   
     

此操作不支持JavaScript回调。

底线是最重要的,您会看到:crunchbase API documentation仍会产生常规JSON,而不是JSONP。