0

コールバックなしのJSON呼び出しがあります。データを解析したい。

$("button").click(function(){
    $.getJSON(
        "url",
        function(result){
            $.each(result, function(i, field){
                $("div").append(field + " ");
        });
    });
});​

およびHTML

<button>Get JSON data</button>
<div></div>​

ただし、フェッチされたデータはありません。私のコードの何が問題になっていますか?

4

3 に答える 3

3

アクセスしようとしているサイトは JSONP もサポートしていないようですので、PHP などのサーバー側言語からコンテンツを取得することをお勧めします。

<?php
echo file_get_contents(url);
?>

jquery getJsonを使用し、

$(document).ready(function(){
  $.getJSON('your_server-side_page.php', function(data){
    $.each(data, function(i, entry) {
      // Process your data here
    });
  });
});

それが役立つことを願っています

于 2012-05-08T10:22:02.890 に答える
2

私はサーフラズに同意します。これは、リモートベースのリクエストであるためです。過去にこの問題を回避した 1 つの方法は、サーバー側のファイル (.php や .aspx など) を使用して URL を読み込み、ローカルでアクセス可能なファイルに対して getJSON を実行することでした。

これは、サーバー側のファイルがリモート ホストに接続できるためです。

たとえば、jquery が次のコードでアクセスするサンプルの test.php ファイルを作成できます。

<?php
header('Content-type: application/xml');
//Get the remote content and output it for Jquery's Local use
echo file_get_contents(url);
?>

次に、電話するだけです(もちろん相対的です):

$("button").click(function(){
    $.getJSON(
      "/test.php",
    function(result){
        $.each(result, function(i, field){
            $("div").append(field + " ");
        });
    });
});​

JsonP のようなものを使用するのは良いことですが、時にはやり過ぎです。これが役立つことを願っています!

于 2012-05-08T10:28:52.410 に答える
1

見た目から、あなたは同じオリジンポリシーのケースに遭遇しています。これは基本的に、ページ上の他のホストから取得したデータを使用できないことを示しています。

サービスの (英語の) API ドキュメントが見つからないため、JSONPの API を確認し、その機能を使用することをお勧めします (存在する場合)。

もう 1 つのオプションは、データのプロキシとして機能するサーバー上にスクリプトを作成することです。ページから要求を取得し、要求を に転送し、http://www.bigpara.comから結果を取得し、http://www.bigpara.comそれらの結果をページに渡します。

于 2012-05-08T10:12:35.830 に答える