Pot.Net.jsonp

{Pot.Deferred} Pot.Net.jsonp ({String} url [, {Object} options])

Pot.js と PotLite.js で利用可能。

JSONP による通信でデータを取得します。

JSONP により、データを取得します。
この関数は、Node.js などのサーバでの実行は考慮されていません。
返り値に JSONP の引数を持った Pot.Deferred のインスタンスが返ります。

引数 url には、対象の URL を指定します。
url には、callback=? 形式のパラメータが指定できます。

var url = 'http://www.example.com/jsonp?callback=?';

上の例のように指定すると、一時的に 実行する関数と共にユニークな関数名を生成し実行します。
この方法がもっとも簡単です。
引数 options は、任意に以下のオプションを設定できます。

options で使用できるキー(すべて任意):

{Object} queryString = null
付加するパラメータ。
値は、Pot.serializeToQueryString() よって変換されます。
例: {name: 'hoge', id: 'fuga'}
{Boolean} cache = false
キャッシュを有効にするか、無効にするかの真偽値。
true にするとレスポンスをキャッシュします。キャッシュがあればそこから取得します。
デフォルトは false で、キャッシュしません。
{Function|String} callback = null
結果を実行する関数、もしくは文字列で関数名を指定できます。
指定する場合、グローバルスコープから可視な関数もしくは関数名にする必要があります。
何も指定されなかった場合、一時的にユニークな関数名および関数を生成し、実行します。
{String} charset = null
<script/> 要素の charset が指定できます。
省略すると要素に charset を設定しません。
{String} type = null
<script/> 要素の type が指定できます。
省略すると、要素に type を指定しません。

Pot.globalize() が適応されている場合、Pot.jsonp() が jsonp() で実行できます。

Pot.Deferred インスタンスが返ります。

// jQuery.getJSON と同じ URL コールバックの指定が可能
var url = 'http://www.example.com/test/jsonp?callback=?';

Pot.jsonp(url, {
    queryString : {
        q : 'JavaScript OR ECMAScript' // 文字列は Pot.urlEncode() によりエンコードされる
    }
}).then(function(data) {

    // 成功時
    Pot.debug(data.results[0].text);

}).rescue(function(err) {

    // エラー時
    Pot.debug('Error! ' + err);

});