web-dev-qa-db-ja.com

HTTP Cookieを設定するときに、ローカルホストをドメインとして使用できますか?

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' });

});
18
Brennan

クッキーの設定でも同様の問題がありました。ドメイン名を作成し、それを127.0.0.1としてhostsファイルに追加します。次に、そのドメインでWebアプリケーションを実行します。

30
empi

ローカルホストの場合にドメインをCookieに追加しないようにjQueryプラグインを更新しました。これで、hostsファイルに触れることなく問題が解決します。

var domain = (options.domain && options.domain !== 'localhost') ? '; domain=' + (options.domain) : '';
12
Brennan

Cookieのドメイン名には正確に2つのドットが必要だと思います(TLDの後の最後のドットは数えません)。そう .something.localhost 大丈夫です、 .google.comは大丈夫ですが、.localhostまたはgoogle.com ではありません。しかし、 RFC 2965 を一目見ると、それよりも複雑であることがわかります...そのドキュメント、特にセクション3.3(および/またはその前身 RFC 2109 )を読むことをお勧めします。 )。

11
David Z

Code Ignitorを使用していますが、ドメインを空の文字列に設定すると、ローカルホストでアプリケーションを操作しているときに問題が修正されました。開発チームの全員がWindows上のhostsファイルをいじる必要がないため、これがより良いソリューションだと思います。

本番ドメインの値は、ライブサイトにデプロイするときにCodeIgnitorのconfig.phpに配置できます。

6
Jaffer

代替名(local.acme.com)を使用するようにホストファイルを設定しようとしましたが、そのドメインにCookieを設定できるようになりました。少なくともFirefoxでは、ローカルホストにCookieを設定できないようです。クッキーの制限であることを覚えていません。ここで何が起こっているのか理解したいと思います。

また、hostsファイルのドメインを単に「dev」にしようとしましたが、うまくいきませんでした。それを機能させるには、.comまたは別のtldで終わる名前を使用する必要がありました。

5
Brennan

これを解決するための最も簡単な解決策は、localhostの代わりに127.0.0.1を使用することでした;-)これはFirefoxで正常に機能します!

3
Mike