2009-07-14 11 views
6

外部の.jsファイルからデータをロードしようとしています。データの束のjson表現を含んでいます。私は私の人生でページ内のデータにアクセスする方法を理解できません。私はこれが本当に簡単だと確信して、私は何かが簡単に欠けている!今、私はこれをしようとしている:何も起こらないので、明らかに非常に間違っているウェブページ上のスクリプトから外部JSONをロードするにはどうすればよいですか?

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

を...。私は<script>タグで読み込もうとしましたが、firebugはロードさえしないと言います。どうすればそれを台無しにすることができますか?とにかく、私は私の髪を引き出す準備ができており、これは約15秒を把握するために他人を連れて行くことになると思います。

答えて

13

データファイルには、company_urlというエントリがありません。さらに.jsファイルはtext/javascript mimeタイプで配信されますが、application/json(またはapplication/x-javascript、それを修正してください)で配信する必要があります。

本当の理由は、もちろん、あなたがあなたのURLに?callback=?を追加する必要があるということです。それからすべてがうまくいく。したがって、次のようになります。

$(document).ready(function(){ 
    $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js?callback=?", 
     function(data){ 
      alert(data.homepage_url); 
     }); 
    }); 
+0

をお勧めします、それは私が実際にそれを固定するコールバック:-)実行していたコードではなかった - 私はその手段または何を本当にわからないんだけど、私はアクセスすることができます今すぐデータ!ありがとうございました!! –

+0

Carly、おそらく、データとそれを取得しているJavaScriptが同じドメインにないことを意味します。コールバックパラメータを追加すると、JSONではなくJSONPが使用されます。 JSONPは基本的にクロスドメインの問題を回避するためのハックです。 – Prestaul

1

一見すると大丈夫です。応答が有効なJSONであることを確認してください。コンテンツタイプが間違っているのでしょうか? のソースURLは正確でですか?あなたのページのドメインですか? (プロトコルとポート番号を含む)

編集:

私はあなたのJSONをロードし、そして何の "company_url" プロパティがありません。

3

私はjsonデータを見ました。 company_urlがないようです。私は、以前の変数を誤って入力しhomepage_url

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

'data.company_url'は、コールバック関数がまったく実行されていればundefinedを生成します。 – SilentGhost

関連する問題