3

Yahoo の Finance API を使用して株式データを取得しようとしています。

        $.ajax({
            dataType: "json",
            url: 'http://download.finance.yahoo.com/d/quotes.csv',
            data: 's=RHT+MSFT&f=sb2b3jk&callback=?',
            success: function (d) {
                console.log(JSON.stringify(d));
            },
            error: function (d, a, b) {
                console.log(JSON.stringify(d));
                console.log(JSON.stringify(a));
                console.log(JSON.stringify(b));
            },
            complete: function (d, a, b) {
                console.log(JSON.stringify(d));
                console.log(JSON.stringify(a));
                console.log(JSON.stringify(b));
            }
        });

呼び出しが機能し、応答で csv テキストを確認できます (Chrome の開発者ツールを使用):

ここに画像の説明を入力

さて、私の問題は、応答に含まれるテキストにアクセスできないことです。

元のスクリプトでわかるように、"success""error"、および"complete"コールバックで応答をキャプチャしようとしましたが、応答テキストはそれらのいずれにも含まれていません。また、"error"and"complete"コールバックのみが発生します。

これについての洞察をいただければ幸いです。事前に感謝します。

ps。YQL クエリとは対照的に、CSV クエリを使用している理由は、必要なフィールドを指定するのが CSV クエリの方が簡単だからです。YQL クエリを使用する方がはるかに面倒であることがわかりました。

4

1 に答える 1

4

メソッドはコンテンツ タイプを$.getJSON()受け入れますが、 はこのタイプではありません。text/jsonCSV

これは省略形の Ajax 関数であり、次と同等です。

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

が実行されるのは、要求の結果がかcompleteかどうかに関係なく実行されるためです。successerror

于 2013-02-12T20:57:35.937 に答える