Ajax

Ajaxクラス
クラス 説明
Ajax.Request Ajaxリクエスト
Ajax.Response Ajaxリクエストのレスポンス
Ajax.Updater Ajaxリクエストを行い、そのレスポンスで指定要素を書き換える
Ajax.PeriodicalUpdater  

Ajax.Request

new Ajax.Request( url [ , options ] )
Prototype API documentation | Ajax.Request

Ajax.Request()は内部的にはXmlHttpRequest.open()を呼び出すだけのため、リクエストできるURLは同一起源ポリシーの制約を受けます。なおjQueryのAjaxは、この制約を回避する機能を提供しています。

サンプルコード

var params = { a: 100, b: 'foo' };

new Ajax.Request( 'index.php',
    {
        method: 'get',
        parameters: params,
        onSuccess: function( response )
        {
            alert( response );
        }
    } );

options

プロパティ 内容 既定値
asynchronous Boolean Determines whether XMLHttpRequest is used asynchronously or not. Synchronous usage is strongly discouraged - it halts all script execution for the duration of the request and blocks the browser UI. true
contentType String The Content-type header for your request. Change this header if you want to send data in another format (like XML). application/x-www-form-urlencoded
encoding String The encoding for the contents of your request. It is best left as-is, but should weird encoding issues arise, you may have to tweak this. UTF-8
method String The HTTP method to use for the request. The other common possibility is get. Abiding by Rails conventions, Prototype also reacts to other HTTP verbs (such as put and delete) by submitting via post and adding a extra _method parameter with the originally-requested method. post
parameters String

リクエストのパラメータ。GETメソッドではURLに、他のメソッドではリクエスト ボディにエンコードされる。

これはURLエンコードされた文字列、Hashオブジェクト、またはオブジェクトリテラル形式のオブジェクトのいずれかとする。

  • 文字列 … a=100&b=foo
  • Hash … $H( { a: 100, b: 'foo' } )
  • オブジェクト … { a: 100, b: 'foo' }
 
postBody String POSTメソッドのリクエスト ボディの内容。これを指定しない場合は、parametersプロパティが代わりに使用される。  
requestHeaders Object A set of key-value pairs, with properties representing header names.  
evalJS Boolean | String Automatically evals the content of Ajax.Response#responseText and populates Ajax.Response#responseJSON with it if the Content-type returned by the server is set to application/json. If the request doesn't obey same-origin policy, the content is sanitized before evaluation. If you need to force evalutation, pass 'force'. To prevent it altogether, pass false. true
sanitizeJSON Boolean Sanitizes the contents of Ajax.Response#responseText before evaluating it. false for same-origin requests, true otherwise
コールバック
メソッド 説明
onCreate Triggered when the Ajax.Request object is initialized. This is after the parameters and the URL have been processed, but before opening the connection via the XHR (XMLHttpRequest) object.
onUninitialized※1 Invoked just after the XHR object is created.
onLoading※1 Triggered when the underlying XHR object is being setup, and its connection opened.
onLoaded※1 Triggered once the underlying XHR object is setup, the connection is open, and it is ready to send its actual request.
onInteractive※1 Triggered whenever the requester receives a part of the response (but not the final part), should it be sent in several packets.
onSuccess リクエストが完了し、そのステータスコードが未定義、200番台または304のときに呼び出される。ただしそのステータスコードがonXYZメソッドで定義されているときには、このメソッドは呼び出されない。

このメソッドはonCompleteより先に呼び出される。

onFailure リクエストが完了し、そのステータスコードが定義されているが200番台以外のときに呼び出される。ただしそのステータスコードがonXYZメソッドで定義されているときには、このメソッドは呼び出されない。

このメソッドはonCompleteより先に呼び出される。

onXYZ

Invoked just after the response is complete if the status code is the exact code used in the callback name. Prevents execution of onSuccess and onFailure. Happens before onComplete.

(with XYZ representing any HTTP status code)

onException Triggered whenever an XHR error arises. Has a custom signature: the first argument is the requester (i.e. an Ajax.Request instance), and the second is the exception object.
onComplete すべてのコールバックの最後に呼ばれる。リクエストの間に何が起ころうとも、必ず呼ばれることが保証されている。
※1 これらのメソッドが呼び出される保証はありません。
Prototype.jsとXMLHttpRequestとの対応関係
Prototype.js
におけるメソッド名
XMLHttpRequest
における呼称
onUninitialized Uninitialized (0) ※1
onLoading Open (1)
onLoaded Sent (2)
onInteractive Receiving (3)
onComplete Loaded (4)
※1 かっこ内の数値はreadyStateプロパティの値

Ajax.Response

分類 プロパティ 内容
  headerJSON  
  readyState リクエストの状態を表す数値
  • 0 : Uninitialized
  • 1 : Loading
  • 2 : Loaded
  • 3 : Interactive
  • 4 : Complete
それぞれの状態に変化するときに、状態名の先頭に「on」を付けたコールバックを呼び出す
リクエスト request リクエストに使用した Ajax.RequestまたはAjax.Updaterオブジェクト
レスポンス responseJSON レスポンスのJSONボディ
responseText レスポンスのテキスト ボディ
responseXML レスポンスのXMLボディ
ステータス status HTTPステータス コード
statusText HTTPステータス テキスト
  transport XmlHttpRequestオブジェクト
分類 メソッド 説明
Header getHeader  
getAllHeaders  
ResponseHeader getResponseHeader  
getAllResponseHeaders  
JavaScriptのドキュメントから検索