0

Ajax 呼び出しの新機能。学習を開始するにはいくつかの指針が必要ですが、実際の例でそれを行いたいです。

このリンク: http://api.tumblr.com/v2/blog/david.tumblr.com/info?api_key=API_KEY

これは、使用するデータの良い例です。

{
    "meta": {
        "status": 200,
        "msg": "OK"
    },
    "response": {
        "blog": {
            "title": "David\u2019s Log",
            "posts": 3981,
            "name": "david",
            "url": "http:\/\/www.davidslog.com\/",
            "updated": 1348785660,
            "description": "\u201cMr. Karp is tall and skinny, with unflinching blue eyes and a mop of brown hair. He speaks incredibly fast and in complete paragraphs.\u201d \u2013 NY Observer",
            "ask": false
        }
    }
}

これを最初に使用できると思いますが、他の方法にも確実に対応できます。

var tumblrURL = "david.tumblr.com";

jQuery.ajax({
    url: "http://api.tumblr.com/v2/blog/" + tumblrURL + "/info",
    data: {api_key: "MY_PRIVATE_API_KEY"},
    dataType: "jsonp",
});​

しかし、解析してさまざまなビットを返して取得し、それらを変数として使用したり、呼び出しのテストに使用したりする適切な方法についてはわかりません。

たとえば、「ステータス」や「名前」を取得するにはどうすればよいですか?

ステータスが 200 の場合、名前 (「david」) から var を作成し、それを他のオプションに使用します。

または、ステータスが 404 の場合は、別のことをしたいと思います (エラーを返すなど)。

炎上しないでください。私は学ぼうとしており、いくつかの例や指針が得られれば、より興味深いものに進むことができます. jQuery の他の側面については問題ないので、これらの問題は問題ないはずです。

ありがとう!

4

2 に答える 2

1

このjQuery.Ajax関数は、オプションの関数パラメータを取りますsuccess:

成功(データ、テキストステータス、jqXHR)

リクエストが成功した場合に呼び出される関数。この関数には 3 つの引数が渡されます。dataType パラメータに従ってフォーマットされた、サーバーから返されたデータ。ステータスを説明する文字列。jqXHR (jQuery 1.4.x では XMLHttpRequest) オブジェクト。jQuery 1.5 の時点で、success 設定は関数の配列を受け入れることができます。各関数が順番に呼び出されます。これは Ajax イベントです。

これを独自の関数に設定すると、リクエストが成功すると自動的に実行され、通常の Javascript オブジェクトとして受け取る JSON blob 全体が提供されます。あなたの場合、リクエストのステータスをdata.meta.status- または名前で取得できますdata.response.blog.name

jQuery では、同様の方法で自動的に呼び出される Ajax リクエストのエラー ハンドラーも使用できることに注意してくださいerror(jqXHR, textStatus, errorThrown)


コード例:

jQuery.ajax({
    url: "http://api.tumblr.com/v2/blog/" + tumblrURL + "/info",
    data: {api_key: "MY_PRIVATE_API_KEY"},
    dataType: "jsonp",
    success: function(data, textStatus, jqXHR) {
        // Do whatever you'd like in here with your data
        console.log("Got a response from " + data.response.blog.name);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        // Do whatever you'd like in here with your ERROR data
        alert("Got an error: " + textStatus);
    }
});​
于 2012-09-29T02:43:16.523 に答える
1

通常、ajax呼び出しが発生した後、リクエストが成功した場合、つまり、応答を取得した場合は、成功コールバック関数でアクセスします...

jQuery.ajax({
    url: "http://api.tumblr.com/v2/blog/" + tumblrURL + "/info?api_key=MY_PRIVATE_API_KEY",  // The url you want to pass
    dataType: "jsonp",  // The type of format expecting
    data: "{}",  // Your data to be sent
    success: function(result) {   // If ajax is a success
       alert('Ajax request Success !!');
   },
    error: error(jqXHR, textStatus, errorThrown) {  //If error in ajax
        alert('Error occured  : ' + errorThrown);
    }
});

これは、ajax リクエストの基本的なセットアップにすぎません。jQueryドキュメントで検索できるオプションが他にもたくさんあります。

コールバックで取得する jsonp データは、例のようなものです。

ここで result はオブジェクトです。通常は を使用します記法または [] 記法を使用して結果にアクセスします。

使用するメタ内のデータを取得するには使用する名前内result.meta.status のデータを取得するにはresult.response.blog.name

いつでも console.log( result.meta.status) を使用して値をコンソールに記録できます。

于 2012-09-29T03:02:46.183 に答える