0

サイトから JSON 情報を取得しようとしています。

私の最初の例は、単なるテストと作業です:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$.get("http://www.w3schools.com/jquery/demo_test.asp",function(data,status){
      document.write("Data: " + data + "\n<br>Status: " + status);
    });
});
</script>

しかし、問題は私の2番目の例にあります:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$.get("https://btc-e.com/api/2/ltc_usd/ticker",function(data,status){
      document.write("Data: " + data + "\n<br>Status: " + status);
    });
});
</script>

PS - ページから情報を取得してブログで使用しようとしています :)

4

1 に答える 1

0

jQuery を使用した外部 JSON とは、JSONP を使用することを意味します。これは、代わりに Javascript スクリプトを返すページによって機能し、必要なデータを使用して (定義した) 関数を呼び出します。通常の JSON としてデータを取得することはできません。したがって、応答は次のようになります。

json_callback({"ticker":{"high":0.77,"low":0.64,"avg":0.705,"vol":107049.5563,"vol_cur":151754.22482,"last":0.76,"buy":0.766,"sell":0.75811,"server_time":1364653244}});

それよりも

{"ticker":{"high":0.77,"low":0.64,"avg":0.705,"vol":107049.5563,"vol_cur":151754.22482,"last":0.76,"buy":0.766,"sell":0.75811,"server_time":1364653244}}

(関数は呼び出されませんがjson_callback、毎回一意の名前が付けられます。)

これは明らかにサーバーの支援に依存しているため、JSONP をサポートするようにサーバーをセットアップする必要があります。これを示す通常の方法はcallback=?、URL の末尾に を追加することです。ここで、?は呼び出したい関数の名前です。これを試してみると、スクリプトが変わらないことがわかります。これは、Web サイトが JSONP 要求をサポートしていないことを示しているため、JSONP を使用してこのデータにアクセスする方法はありません。

データを取得するには、他にもさまざまな方法があります。おそらく最も単純なのは、外部サーバーからのデータを独自のサーバーにプロキシすることです。

于 2013-03-30T14:28:32.633 に答える