Class: Request

XMLHttpRequestのラッパーです。

Implements:

Chain, Events, Options

構文:

var myRequest = new Request([options]);

引数:

  1. options - (オブジェクト, オプション) 以下を参照。

Options:

  • url - (文字列: 初期値=null) リクエスト先のURL。
  • method - (文字列: 初期値='post') リクエストのHTTPメソッド。'post'か'get'のどちらか。
  • data - (文字列: 初期値='') Request:sendの初期値。データが与えられなかったときに使われます。
  • link - (文字列: 初期値='ignore') 'ignore'、'cancel'、'chain'のいずれか。
    • 'ignore' - リクエスト実行中のリクエスト呼び出しは無視されます(MooTools1.11における'wait': trueと同じです)。
    • 'cancel' - リクエスト実行中に新たなリクエストがあった場合は、新しい方を優先し、現在のリクエストを停止します(MooTools1.11における'wait': falseと同じです)。
    • 'chain' - リクエスト実行中に新たなリクエストがあった場合は、連結され、現在のリクエストが終了してから実行します。
  • async - (真偽値: 初期値=true) falseにセットされた場合、リクエストは同期し、リクエストが終了するまでブラウザはフリーズします。
  • encoding - (文字列: 初期値='utf-8') リクエスト・ヘッダーに添附される文字コードです。
  • headers - (オブジェクト) リクエストヘッダーをセットするために使われるオブジェクトです。
  • isSuccess - (関数) 組み込み関数のisSuccess を上書きします。
  • evalScripts - (真偽値: 初期値=true) trueにセットされると、レスポンス内のscriptタグは評価されます。
  • evalResponse - (真偽値: 初期値=false) trueにセットされると、レスポンス全体が評価されます。コンテンツ型がjavascriptの場合は自動的に評価されます。
  • emulation - (真偽値: 初期値=true) trueにセットされると、'post'と'get'以外のメソッドが加えられ、'_method'という名前のポストデータになります(Ruby On Railsで使われます)。
  • urlEncoded - (真偽値: 初期値=true) trueにセットされると、content-typeヘッダーはwww-form-urlencoded + 文字コードにセットされます。

イベント:

request

リクエストを送った時に発生します。
表記:
onRequest()

complete

リクエストが完了したときに発生します。
表記:
onComplete()

cancel

リクエストがキャンセルされた時に発生します。
表記:
onCancel()

success

リクエストが終了して成功に終わると発生します。
表記:
onSuccess(responseText, responseXML)
引数:
  1. responseText - (文字列) リクエストから受け取ったテキスト。
  2. responseXML - (いろいろ) リクエストから受け取ったXML。

failure

リクエストが失敗したときに発生します(エラーステータスコード)。
表記:
onFailure(xhr)
引数:
xhr - (XMLHttpRequest) transportインスタンス。

exception

リクエストのヘッダー設定に失敗すると発生します。
表記:
onException(headerName, value)
引数:
  1. headerName - (文字列) 失敗したヘッダー名。
  2. value - (文字列) 失敗したヘッダーの値。

プロパティ:

  • running - (真偽値) trueならばリクエストを実行します。
  • response - (オブジェクト) キーにテキストとXMLを持つオブジェクト。'success'イベントを通してこれにアクセスできます。

戻り値:

  • (オブジェクト) 新しいRequestインスタンス。

例:

var myRequest = new Request({method: 'get', url: 'requestHandler.php'});
myRequest.send('name=john&lastname=dorian');

参考情報:

Requestメソッド: setHeader

リクエストのヘッダーを追加・修正します。オプションのヘッダーは上書きできません。

構文:

myRequest.setHeader(name, value);

引数:

  1. name - (文字列) ヘッダーの名前。
  2. value - (文字列) アサインする値。

戻り値:

  • (オブジェクト) このRequestインスタンス。

例:

var myRequest = new Request({url: 'getData.php',メソッド: 'get', headers: {'X-Request': 'JSON'}});
myRequest.setHeader('Last-Modified','Sat, 1 Jan 2005 05:00:00 GMT');

Requestメソッド: getHeader

与えられたレスポンスヘッダーを取得し、なければnullを返します。

構文:

myRequest.getHeader(name);

引数:

  1. name - (文字列) 値を取得したいヘッダーの名前。

戻り値:

  • (文字列) 取得したヘッダーの値。
  • (null) ヘッダーがなければnull。

例:

var myRequest = new Request(url, {method: 'get', headers: {'X-Request': 'JSON'}});

var headers = myRequest.getHeader('X-Request'); //戻り値'JSON'.

Requestメソッド: send

リクエストの接続を開き、指定されたオプションとともにデータを送信します。

構文:

myRequest.send([options]);

引数:

  1. options - (オブジェクト, オプション) 送られたリクエストのオプション。齟齬をきたさないために、データをクエリ文字列にして使うこともできます。

戻り値:

  • (オブジェクト) このRequestインスタンス。

例:

var myRequest = new Request({url: 'http://localhost/some_url'}).send("save=username&name=John");

Requestメソッド: cancel

現在リクエストが行われていれば、それをキャンセルします。

構文:

myRequest.cancel();

戻り値:

  • (オブジェクト) このRequestインスタンス。

例:

var myRequest = new Request({url: 'mypage.html',メソッド: 'get'}).send('some=data');
myRequest.cancel();

Hash: Element.Properties

参考情報:Element.Properties

Element Property: send

Set

要素にデフォルトRequestインスタンスを設定します。フォームを扱うときに便利です。

構文:

el.set('send'[, options]);

引数:

  1. options - (オブジェクト) リクエストオプション。

戻り値:

  • (要素) オリジナルの要素。

例:

myForm.set('send', {url: 'contact.php',メソッド: 'get'});
myForm.send(); //フォーム送信。

Get

以前にセットされたRequestインスタンスを取得します(もしくは、デフォルトオプションの新しいインスタンスを返します)。

構文:

el.get('send'[, options]);

引数:

  1. options - (オブジェクト, オプション) リクエストオプション。渡されていれば、Requestクラスの新しいインスタンスが生成されます。

戻り値:

  • (オブジェクト) Requestインスタンス。

例:

el.get('send', {method: 'get'});
el.send();
el.get('send'); //Requestインスタンスを返します。

Native: Element

$関数で取得したDOM要素がこれらのメソッドをすべて使えるようにするカスタムネイティブです。

Elementメソッド: send

フォーム、またはinput要素のコンテナをHTMLリクエストで送信します。

構文:

myElement.send(url);

引数:

  1. url - (文字列, オプション) フォームや"inputのコンテナ"を送信したいURL。URLが省略された場合、formのaction属性が使われます。"inputのコンテナ"の場合は省略できません。

戻り値:

  • (element) この要素。

例:

HTML
<form id="myForm" action="submit.php">

    <p>
        <input name="email" value="bob@bob.com">
        <input name="zipCode" value="90210">

    </p>
</form>
JavaScript
$('myForm').send();

注意点:

  • URLはフォームのaction属性から取られます。

このドキュメントはMooToolsのドキュメントを元に高橋文樹が翻訳(ちょっと改変)しました。
本家と同じく、Attribution-NonCommercial-ShareAlike 3.0ライセンスで公表されています。

トップに戻る