  | 
    
       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.
     |