サイトトップ

Director Flash 書籍 業務内容 プロフィール

HTML5テクニカルノート

PreloadJS 0.6.0: 読込みにwithCredentialsとheadersを定める

ID: FN1412006 Technique: HTML5 and JavaScript Library: PreloadJS 0.6.0

PreloadJSは、何でも読込めるライブラリです。ファイル形式にかかわらず、わずかなコードでプリロードできます。けれど、インターネットの性質から、リクエストに手を加えたり、セキュリティフラグを立てなければならないこともあります。そこで、低レベルのリクエストをカスタマイズできるように、ロード項目の(LoadItem)オブジェクトに、新たにwithCredentialsとheadersというふたつのプロパティが加わりました(「Better loading with PreloadJS: withCredentials and headers」参照)。

  • withCredentials
    サーバーサイドのアプリケーションは、一般にcookieを認証データに含めて送ります。通常、ブラウザは自動的にこのデータを、リクエストとともに返します。クライアントサイドの開発者は、これらの認証情報は知らないという考え方です。XmlHttpRequestsを使うとき、開発者はXHRオブジェクトに、これらの値をリクエストとともに送らせなければなりません。そこで、withCredentialsを用います。リクエストをつくるとき、withCredentialsプロパティにtrueを与える({withCredentials: true})のです。すると、PreloadJSはこの値を送り、認証リクエストが正しく動きます。

    var loadItem = {
      withCredentials: true,
      src: ”http://file.com/api.php”,
      data: {foo:bar, baz:1},
      method: createjs.LoadQueue.POST
    };
    var request = new createjs.LoadQueue(loadItem);
    request.loadFile(loadItem);


  • headers
    PreloadJSは必要なヘッダを内部的に定めてきました。けれどこれからは、ヘッダのオブジェクトをheadersプロパティでロード項目のオブジェクトに与えられます。デフォルトのヘッダは渡された値でオーバーライドされます。

    var loadItem = new createjs.LoadItem().set({
      src: “http://path/to/image.png”,
      headers: {
        "X-My-Header": "foo",
        "Content-Type": "application/x-www-form-urlencoded"
      }
    });

この設定は新たなLoadItemクラスを用いると便利です。LoadItemでなく、通常のオブジェクトを使うこともできます。LoadItemクラスを加えたことで、ロードの設定がより公式化され、ドキュメント化しやすくなりました。また、通常のオブジェクトや文字列も引続き使えますので、すでに書かれたコードには問題は起こりません。



作成者: 野中文雄
作成日: 2014年12月18日


Copyright © 2001-2014 Fumio Nonaka.  All rights reserved.