現在開発中の案件が、Flash <- xmlrpc -> WebObjects で動かしています。
http なら問題ないのですが、https にすると Windows の IE(6も7も) のみうまく動きません。Mac の Safari はもちろん、同じ Windows でも Firefox なら問題なく動きます。
この案件の初期実験で確認していたのですが、いよいよ本気で解決しないといけなくなりました。
で、いろいろ google していると red日記さんというブログのFlash + SSLで、同じ様な現象が報告されていました。サーバーが PHP なのですが、たぶん同じ現象ですね。
その他、役立つ情報があったのでメモしておきます。
http://www.blog.lessrain.com/?p=276
http://ask.support.microsoft.com/default.aspx?scid=kb;en-us;272359
さて、解決しました。通常であれば
http://homepage.mac.com/kelleherk/iblog/C463983418/E102943740/index.html や
http://www.nsobject.jp/webobject_5_3_Sample.html に
書いてある
public WOResponse dispatchRequest(WORequest request) {
WOResponse aResponse = super.dispatchRequest( request );
// A workaround to fix https downloads bug in IE
// See Microsoft knowledge base articles 812935, 323308
// http://support.microsoft.com/kb/812935/en-us
// http://support.microsoft.com/kb/323308/en-us
// Remove the cache-control: no-store and cache-control: no-cache headers
String contentType = aResponse.headerForKey( "content-type" );
if ( contentType != null && contentType.equals( "application/octet-stream" ) ) {
// Modify the headers
aResponse.removeHeadersForKey( "cache-control" );
aResponse.removeHeadersForKey( "pragma" );
// Set age to a long time allowing caching
aResponse.setHeader("max-age=604800","cache-control");
}
return aResponse;
}
に近い事をすればいいのですが
Application.java で setPageRefreshOnBacktrackEnabled(false); をしている場合は
aResponse.disableClientCaching(); をしないと no-cache にならないでそうです。
pageRefreshOnBacktrackEnabled() のデフォルトはtrueなのでデフォルトのままだと
aResponse.removeHeadersForKey( "cache-control" );
しないといけないっぽいです。との事。

コメントする