結構はまりましたのでメモ。
とある会員登録システムにて、登録フォーム箇所に
iframeを使っておりましたが、最終テストの段階で
サファリだけうまく機能しない。。
以下のようなイメージになります。
前提条件
html表示サイトドメイン -> http://site_a.com(サイトA)
iframeで読み込んでいる別サイトドメイン -> http://site_b.com(サイトB)
http://site_a.com/add/index.phpのファイル一部
<iframe scrolling="no" src="http://site_b.com/members/add/index.php"><iframe>
http://site_b.com/members/add/index.phpのファイル一部
※サイトBアクセス時にクッキーAをチェックし存在しなかったらエラーになる処理有
<form action="" post="method"> <input type="text" value="" name="mail"> <input type="submit" value="commit" name="登録"> </form> ・ ・ ・
iframe内にて別ドメインのページを表示し、そこで
登録処理などを行っております。
クッキーAはサイトAとサイトBとのデータやり取りの為に
使っております。(両サイト間でのセッションみたいな感じです。)
どうもサファリでは、上記のようなサードパーティCookie(サイトB)の場合は
正常に保存してくれないみたいなのです。
サファリの設定でCookie受け入れをすべてにすればよい話ですが、
それだとスマートではない。。
いろいろやり方はあるかと思いますが、私はいったんサイトBにアクセスさせ
そこでサイトBのCookie(クッキーA)発行およびセット、その後本来のサイトAに
リダイレクトで帰ってくるという処理で対応しました。
が、ん~これもスマートではない。。
他にスマートな方法があるか模索中です。