XMLHttpRequest レスポンスの解釈について
XMLHttpRequestを使ったAJAX通信の動きを試していますが、
レスポンス時の処理について、もう少し詳しく調べてみます。
前回の投稿では、サーバ側からのレスポンスの内容を下記の形で取得していました。
[js]
// responseレスポンス内容を出力
result.innerHTML += ‘レスポンス内容の表示 -> ‘ + req.response + ‘<br />’;
[/js]
XMLHttpRequestオブジェクトの response プロパティを使っていますが、
このプロパティ以外にもレスポンスを受取ることができます。
レスポンスの形式の一例として次のものがあります。
[js]
文字列 (text)
json (json形式)
配列 (arraybuffer)
バイナリデータ (blob)
ドキュメント (xmlドキュメント)
null
[/js]
受信時には、上記のデータをjsonで受取るケースが多く、その場合には受信データをパースしてクライアント側で使用します。
また、受信時にはサーバ側からの Content-Type(レスポンスヘッダ) を基にどんなデータなのかの判断をすることもあります。
ただし、実際に受信したデータと、サーバ側から返される Content-Type(レスポンスヘッダ)のデータが保証されているわけではなく、
サーバ側で Content-Type(レスポンスヘッダ) を意図的に実データと異なるものを指定することもできる為、
アプリケーションの設計、実装時に十分な注意が必要になります。