Como faço para carregar JSON externa de um script em uma página da web?
-
13-09-2019 - |
Pergunta
Eu estou tentando carregar dados de um arquivo .js
externo, contendo uma representação JSON de um bando de dados. Eu não posso para a vida de me descobrir como acessar os dados dentro da página. Tenho certeza que isso é muito fácil e eu estou faltando algo simples! agora, eu estou tentando isso:
$(document).ready(function(){
$.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",
function(data){
alert(data.company_url);
});
});
... que é, obviamente, muito errado, uma vez que nada acontece. Eu tentei carregá-lo em uma tag <script>
, mas Firebug diz-me que nem sequer carregar. como eu poderia estragar isso? de qualquer maneira, eu estou pronto para puxar meu cabelo, e eu acho que isso vai levar alguém sobre 15 segundos para descobrir.
Solução
esse arquivo de dados não tem entrada company_url
. Além disso, o arquivo .js
é servido com text/javascript
mime-type, quando deve ser servido com application/json
(ou application/x-javascript
, corrija-me sobre isso).
A verdadeira razão , é claro, é que você precisa adicionar ?callback=?
para o seu url. Então tudo está indo para o trabalho. Então, ele vai ficar assim:
$(document).ready(function(){
$.getJSON("http://api.crunchbase.com/v/1/company/xobni.js?callback=?",
function(data){
alert(data.homepage_url);
});
});
Outras dicas
Eu olhei para os dados JSON. Parece que não há nenhuma company_url. Você pode querer homepage_url
$(document).ready(function(){
$.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",
function(data){
alert(data.homepage_url);
});
});
parece ok à primeira vista. Tem a certeza que a resposta é JSON válido? É o tipo de conteúdo incorreto, talvez? É a URL de origem no exata ??em> mesmo domínio que sua página? (Incluindo protocolo e porta série)
edit:
Eu carreguei o JSON, e não há nenhuma propriedade "company_url".