Skip to content

DataAPI SDK japanese MT.DataAPI Implementation notes

Taku AMANO edited this page Aug 28, 2013 · 5 revisions

実装の詳細

POSTリクエストの送信

ブラウザが FormData オブジェクトをサポートしている場合には、DataAPI オブジェクトは全てのリクエストを FormData オブジェクトを利用して送信します。結果として、全ての POST リクエストは "multipart/form-data" の形式で送信されます。

ブラウザが FormData オブジェクトをサポートしていない場合には、DataAPI オブジェクトは "application/x-www-form-urlencoded" の形式で送信します。

ブラウザキャッシュの回避

"cache" オプションが真の場合には、DataAPI はシンプルにリクエストを送信します。

"cache" オプションが偽の場合には、DataAPI はパラメータに"_"を付加してリクエストを送信します。"_"の値には現在の時刻(ミリ秒)が指定されます。

クロスオリジンな環境でのリクエストの送信 (CORS)

"crossOrigin" オプションが真の場合、または "crossOrigin" オプションが指定されておらずかつ現在の URL と baseUrl のオリジンが異なる場合には、DataAPIオブジェクトはクロスオリジン向けの設定でリクエストを送信します。影響を受ける動作は具体的には以下の2点です。(クロスオリジンのリクエストを受け付けるためにはサーバー側で "DataAPICORSAllowOrigin" などの設定を行う必要があります。)

X-Requested-With リクエストヘッダ

同じオリジンの場合には X-Requested-With リクエストヘッダとして XMLHttpRequest を送信しますが、クロスオリジンのリクエストの場合には送信しません。

IE8 や IE9 での XDomainRequest の利用

IE8 や IE9 の XMLHttpRequest ではクロスオリジンのリクエストを送信することができないので、DataAPI オブジェクトは XDomainRequest を利用してリクエストを送信します。ただこの時 XDomainRequest ではリクエストヘッダを追加することができないため、ユーザー認証を伴うリクエストは送信することができません。(ユーザー認証を伴うリクエストを送信しようとすると例外が発生します。)

Clone this wiki locally