2010-12-02 4 views
0

J'essaie simplement d'envoyer une alerte avec un "nom", mais cela ne semble pas fonctionner. Conseil?

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

Voici ce que le JSON contient:

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

Répondre

0

Normalement vous utiliseriez JSONP ici en ajoutant &callback=? à votre URL, mais un rappel JSONP est pas pris en charge dans ce cas, de la crunchbase API documentation:

Liste entités

Pour récupérer une liste de toutes les entités dans un certain espace de noms sur CrunchBase, utilisez une URL de la forme:

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

Le pluriel namespaces disponibles sont:

  • entreprises
  • personnes
  • -organismes financiers
  • produits
  • fournisseurs de services

Cette action ne prend pas en charge les rappels JavaScript.

La ligne de fond est le plus important, vous verrez que ceci: http://api.crunchbase.com/v/1/companies/permalink?name=Google&callback=callme résultats encore JSON régulière, pas JSONP.

+0

Heureusement, le PO apparemment seulement veut vraiment charger une seule entreprise, donc le déplacer vers les actions singulières peut résoudre ce bit. – Matchu

+0

quelle est la différence entre & callback =? et? callback =? –

+0

@Matchu - cela nécessite cependant une entrée différente, par exemple 'http: //api.crunchbase.com/v/1/companies/permalink? Name = A + Small + Orange' vs' http: //api.crunchbase.com/v/1/compagnie/a-small-orange.js' (et d'autres où la traduction n'est pas si simple, comme un '&' étant encodé ... donc ce n'est pas la même méthode :) –

2

Si vous n'êtes pas Crunchbase, vous ne pouvez pas envoyer cette demande. Pour des raisons de sécurité, seul le code www.crunchbase.com peut envoyer des requêtes AJAX à www.crunchbase.com. (Imaginez que nous parlions www.bankofamerica.com et moi étions connecté. Ce serait un problème si ne importe quel site pourrait envoyer des requêtes arbitraires www.bankofamerica.com avec mes biscuits attachés.)

Le API documentation n'indique une option JSON-P, mais . Si vous êtes intéressé, vous pouvez rechercher les détails de l'implémentation, mais le point important est que la technique JSON-P est capable de contourner la restriction de nom de domaine car l'API de Crunchbase vous le permettra.

L'URL http://api.crunchbase.com/v/1/company/google.js est une ressource similaire à celle que vous avez mentionnée, mais cette URL particulière vous permet d'utiliser JSON-P, contrairement à celle que vous avez publiée. jQuery vous permet de le faire facilement: passez l'URL à $.getJSON en tant que http://api.crunchbase.com/v/1/company/google.js?callback=? (le bit sur le rappel est important!), et jQuery remplira les espaces et manipulera le script magique chargeant en coulisses. Il est très chic :)

+0

bonne explication! – Aaron