タグ : IE

SSL通信でFlashから別ドメインのPHPにPOSTする時のIE6/7/8のエラー

■環境
①https://hoge.com/index.html
・トップページにはFlashのフォームがあり、②のサーバにデータを送信する。

②https://example.com/index.php
・Flashからデータを受け取りDBに登録する。
・XMLを出力しFlashに返す。

■現象
・SafariやChrome・FireFox・IE9では正常に登録できる状態で、
IE6/7/8ではPHPへデータを送信できていない。

■その他
・https://example.com/crossdomain.xmlは設置済み

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" secure="false" />
</cross-domain-policy>

■解決策
いろいろ調査した結果、example.comに置いてあるPHPのCache設定がよくないらしい、、、
IEのバグらしくSSLでアクセスしたときにsession_cache_limiterがnocacheだとFlashから読み込めないんです。

SSL 経由でファイルのダウンロードを Internet Explorer キャッシュ コントロール ヘッダーが機能しません

PHPのsession_start();を行う前に

session_cache_limiter('private');

を追記。

session_cache_limiter

そして、ページを描画する前にheaderでLast-Modifiedを送信することで、
キャッシュに残っているPHPを読み込みなおしてくれます。

header("Cache-Control","public");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");

今回はFacebookのJavascript SDKが使い物にならず、
PHPのSDKを使うことから始まりました。
そもそもFlashから直接SDKを使用すると、OAuth以外まともに動いてくれませんでした。

PHP用のFacebook SDKは優秀で、コードを殆ど書かなくても使用できるのが便利です。
TwitterのOAuthよりかなり簡単です。
しばらくは、自前のFlash用SDKを使用して、Facebookとのやりとりを行うとします。

【Javascript】Kwicksメニューがグニャーってライブラリ

メニューがグニャーってライブラリです。

説明しても難しいので、サンプルを確認してください。

Kwicksサンプル

このヌルヌル感が好き。

でも、ライブラリを落としてきたけどそのままじゃIE対応できないみたい。

基本はjqueryを最初に読み込ませてkwicks.jsを入れてナビ用にjsを書いて調整しますが、
この、kwicks.jsの27行目付近に書いてある
container = $(this);
ってところを
var container = $(this);
に変更しないとIEで動かなかったです。

Kwicks本サイト

【Javascript】変数をコンソールに表示

Javascriptをデバッグするときにalertを今まで使用していましたが、
いちいちポップアップが表示されてOKボタンを押すのもめんどくさいです。
そこで、FireBugなどのエラーコンソールに表示するとかなり開発が早くなります。

FireFox 2,3・・・FireBugのエラーコンソール
IE 7,8・・・FireBug Lite ++ のコンソール([F12]で表示)
Safari 4,5・・・エラーコンソールを表示
Chrome 2,3・・・JavaScript コンソール

今まで
alert(‘Message’);
とやっていたところを
console.log(‘Message’);
に変更するだけでコンソールに表示されスムーズな開発が行なえます。

Operaのみコンソールの表示方法が違うので注意が必要です。
opera.postError(‘Debug Message’);

最後に開発が完了したらconsole.logはすべて削除しておきましょう。
ユーザーが安易に確認できてしまうため。