« RPC呼び出し | トップページ | 色指定/変換 »

2007年5月 1日 (火)

IFrameを使った呼び出し

dojo.io.bindは、デフォルトではXMLHttpRequestを使ってサービスを呼び出すが、IFrameを使って呼び出すこともできる。 IFrameを使った場合、XMLHttpRequestを実装していない古いブラウザでも動作するメリットがある。一方で、IFrameでは、GETのみでPOSTが使えないため、主に情報の取得のみに使う。

IFrameを使って呼び出すときは、"dojo.io.IframeIO"をrequireし、dojo.io.bindの引数のtransportプロパティとして、"IframeTransport"を指定する。

IFrameを使ったときのサービスはHTMLを返す。mimetypeとしてtext/htmlを指定したときは、HTML全体のDOMを取得できる。以下にHTMLを返すサービスを呼び出す例を示す。

dojo.require("dojo.io.*");
dojo.require("dojo.io.IframeIO");

dojo.io.bind({
  url: "iframe.html",
  mimetype: "text/html",
  transport: "IframeTransport",
  content: {
    param1: "aa",
    param2: "bb"
  },
  load: function(type, data, evt) { alert(data);}
});

text/plain, text/javascript, text/json, application/jsonを指定したときは、サーバが返すHTML内の<textarea>以下に送りたい情報を含める。text/plainのときは、<textarea>以下の文字列がそのまま返る。text/javascriptのときは、<textarea>以下の文字列がevalされる。text/json, application/jsonのときは、<textarea>以下にJSON形式の文字列がJSONオブジェクトに変換されて返される。以下にJSONオブジェクトを返すときのIFrame HTMLの例を示す。

<html>
  <head></head>
  <body>
    <textarea>{"test": "hello"}</textarea>
  </body>
</html>

IFrameを使ったときはtext/xmlに対応していない。

« RPC呼び出し | トップページ | 色指定/変換 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/232684/6267756

この記事へのトラックバック一覧です: IFrameを使った呼び出し:

« RPC呼び出し | トップページ | 色指定/変換 »