Pot.Net.request

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

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

HTTP リクエストを実行します。

XMLHttpRequest によるリクエストを実行します。
XMLHttpRequest のない環境 (Node.js など) では http/https request によるリクエストを実行します。
返り値などは同じに扱えます (responseText で取得できるなど)。
Greasemonkey (userscript) も、同じオプション指定、返り値で扱えます。
返り値に XMLHttpRequest レスポンスを設定した Pot.Deferred のインスタンスが返ります。

レスポンス取得の例:
Pot.request(url).then(function(res) {
    // 成功時
    return res.responseText; // or res.responseXML etc.
}).rescue(function(err) {
    // 失敗時
    alert('Error: ' + err);
});

他のレスポンス結果のプロパティ詳細は、XMLHttpRequest - W3C などを参照ください。
引数 url には、HTTP リクエストを実行する URL を指定します。
引数 options は、任意に以下のオプションを設定できます。

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

{String} method = 'GET'
HTTP メソッド。
デフォルトは 'GET' です。
例: 'GET', 'POST', 'HEAD' etc.
{Object|String|*} sendContent = null
POST 時に送るデータ。
値は、Pot.serializeToQueryString() よって変換されます。
queryString と同じ指定の仕方ができます。
sendContent が指定され、queryString と method が指定されてない場合、'POST' に切り替わります。
例: {data: 'hoge', data2: 'fuga'}
{Object} queryString = null
GET 時に送るデータ。
値は、Pot.serializeToQueryString() よって変換されます。
sendContent と同じ指定の仕方ができます。
例: {q: 'JavaScript', hl: 'ja'}
{String} username = null
Basic 認証時に使用するユーザー名。
使用する場合、合わせて password も指定します。
例: 'hoge'
{String} password = null
Basic 認証時に使用するパスワード。
指定する場合、合わせて username も指定します。
例: 'hogepass'
{Object} headers = null
送信するヘッダー。
例: {'Content-Type': 'text/javascript'}
{String} mimeType = null
MIMEType を指定する場合。
例: 'text/javascript'
{Boolean} cache = true
キャッシュを有効にするか、無効にするかの真偽値。
false にするとキャッシュしないでレスポンスを取得します。
デフォルトは true で、キャッシュします。
{Boolean} binary = false
結果をバイナリで取得する場合は true に設定します。
binary を true にすると、MIMEType が 'text/plain; charset=x-user-defined' になり、
レスポンスのオブジェクトは以下のように変化し、追加されます。
responseBytes : {Array}  結果のバイト列の配列。
responseText  : {String} 結果のバイナリ文字列 (responseBytes を文字列にしたもの)。
originalText  : {String} オリジナルの responseText。
{Boolean} cookie = false
cookie を送信する場合 true に設定します。
false にしても、cookie の送信を抑制するわけではありません。
cookie が送信されない環境や設定で、有効にするためのオプションです。
{String} crossDomain = false
クロスドメイン通信を明示したい時に true に設定します。
true にしてもクロスドメイン通信が可能になるわけではありません。
多くの環境では、クロスドメイン通信は
サーバ側で 'Access-Control-Allow-Origin' ヘッダなどの設定が必要です。
{Boolean} sync = false
同期で実行する場合、true に設定します。
デフォルトは非同期です。
{String} responseType = null
取得するタイプを指定できます。
例えば、'arraybuffer', 'blob', 'document', 'json', 'text' などです。
詳細は、XMLHttpRequest Level 2 - W3C などを参照ください。
Web ブラウザ以外の環境、またはサポートされていない環境では有効になりません。

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

レスポンス結果を持った Pot.Deferred インスタンスが返ります。

Pot.request('./data.php', {
    method : 'POST',
    sendContent : {
        query  : 'Book OR Media', // 文字列は Pot.urlEncode() でエンコードされる
        start  : 0,
        length : 15,
        format : 'json'
    },
    mimeType : 'application/json',
    headers  : {
        'User-Agent'   : 'Pot.js',
        'Content-Type' : 'application/json'
    }
}).then(function(res) {

    // 成功時
    Pot.debug(res.responseText);

}, function(err) {

    // 失敗時
    Pot.debug('Error! ' + err);

});