JQueryプラグインを使用してCookieを設定していますが、ドメインにlocalhostを使用すると、Cookieが保存されません。
これが私がjQuery1.2.6で使用しているプラグインです。
http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/
以下は私が使用しているコードです。 localhostが気に入らないことがわかります。私は、localhost上の開発Webサーバーから実行しています。詳細の1つは、ポート4005で実行していることですが、ドメインAFAIKには影響しないはずです。
$(function() {
console.log('Testing');
var one = $.cookie('Test.One');
var two = $.cookie('Test.Two');
var three = $.cookie('Test.Three');
console.log(['one', one]);
console.log(['two', two]);
console.log(['three', three]);
$('#div1').text(one);
$('#div2').text(two);
$('#div3').text(three);
$.cookie('Test.One', 'Test 1');
$.cookie('Test.Two', 'Test 2', { path: '/' });
$.cookie('Test.Three', 'Test 3', { path: '/', domain: 'localhost' });
});
クッキーの設定でも同様の問題がありました。ドメイン名を作成し、それを127.0.0.1としてhostsファイルに追加します。次に、そのドメインでWebアプリケーションを実行します。
ローカルホストの場合にドメインをCookieに追加しないようにjQueryプラグインを更新しました。これで、hostsファイルに触れることなく問題が解決します。
var domain = (options.domain && options.domain !== 'localhost') ? '; domain=' + (options.domain) : '';
Code Ignitorを使用していますが、ドメインを空の文字列に設定すると、ローカルホストでアプリケーションを操作しているときに問題が修正されました。開発チームの全員がWindows上のhostsファイルをいじる必要がないため、これがより良いソリューションだと思います。
本番ドメインの値は、ライブサイトにデプロイするときにCodeIgnitorのconfig.phpに配置できます。
代替名(local.acme.com)を使用するようにホストファイルを設定しようとしましたが、そのドメインにCookieを設定できるようになりました。少なくともFirefoxでは、ローカルホストにCookieを設定できないようです。クッキーの制限であることを覚えていません。ここで何が起こっているのか理解したいと思います。
また、hostsファイルのドメインを単に「dev」にしようとしましたが、うまくいきませんでした。それを機能させるには、.comまたは別のtldで終わる名前を使用する必要がありました。
これを解決するための最も簡単な解決策は、localhostの代わりに127.0.0.1を使用することでした;-)これはFirefoxで正常に機能します!