AtomPub ClientでHTTP ResponseHeaderも利用する

WEB+DB PRESS vol.43

WEB+DB PRESSに「RESTレシピ クールなWebシステムへの道しるべ」という連載があって,vol.43は「同時実行制御」というお話でした.内容は条件付きリクエストというHTTP1.1標準機能をいかに活用するかってことなんですが,これを実装するには,AtomPubクライアントがHTTPヘッダを読み書きする必要があります.書く方は前回の日記で書いたようにbeforeSend Eventが使えましたが,読む方はどうするのか,調べてみました.

ResponseHeaderを読む

"workspace title"を取得するコードで試してみました.ヘッダを全部取得するならこんなコードになります.

$.ajax({
 type: "GET",
 url: "myservice",
 success: function(xml){console.log($($("title",$(xml))[0]).text())},
 complete: function(xhr){console.log(xhr.getAllResponseHeaders())},
});

ある特定のヘッダだけ取得するんならこんな感じでした.

$.ajax({
 type: "GET",
 url: "myservice",
 success: function(xml){console.log($($("title",$(xml))[0]).text())},
 complete: function(xhr){console.log(xhr.getResponseHeader('Content-Type'))},
});

このコードでは"Content-Type"ヘッダを取得しています.success Eventの中で取得してもいいのですが,"304 Not Modified"が返って来た時にsuccess Eventで処理しているのかよくわからないので,complete Eventを使っています.