OKみんな
これはCodeIgniter
問題ではありません。の問題Firefox
です。14.0.1
のバージョンを使用していFirefox
ます。
同じフォームとプロセスを(最新)で試しIE 7, 8, 9
ました。Safari 5,
Chrome
フォームを再送信するための確認ダイアログボックスが表示されませんF5
。
アップデート
Firefoxでこのメッセージが表示されます-
このページを表示するには、Firefoxは以前に実行されたアクション(検索や注文確認など)を繰り返す情報を送信する必要があります。
別のスクリプト(CIなし)をセットアップし、Firefoxでテストしました。同様のプロセスを作成しようとしました(つまり、同じページに投稿してリダイレクトします)...このメッセージはまったく表示されません。更新は問題なく機能します。だから私は今CIに戻りますか?
アップデート2
OK私は今それをクラックしたと思います-
CIのリダイレクト関数を使用しています(以下を参照)。2番目のパラメーターはデフォルト値を「auto」とし、それが完了すると、Firefoxに上記のメッセージをスローさせるauto
ヘッダーを送信します。header('Refresh:0;url='.$uri);
上記のように、他のブラウザでは同じ動作をしません。私はそれが誰かを助けることを願っています。
function redirect($uri = '', $method = 'auto', $http_response_code = 302)
{
if ( ! preg_match('#^https?://#i', $uri))
{
$uri = site_url($uri);
}
// IIS environment likely? Use 'refresh' for better compatibility
if (DIRECTORY_SEPARATOR !== '/' && $method === 'auto')
{
$method = 'refresh';
}
switch($method)
{
case 'refresh':
header('Refresh:0;url='.$uri);
break;
default:
header('Location: '.$uri, TRUE, $http_response_code);
break;
}
exit;
}