Могу ли я использовать localhost в качестве домена при настройке HTTP cookie? - PullRequest
17 голосов
/ 29 января 2009

Я использую плагин jQuery для установки куки, и когда я использую localhost для домена, он не будет сохранять куки.

Вот плагин, который я использую с jQuery 1.2.6.

http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/

Ниже приведен код, который я использую. Вы можете видеть, что он не любит localhost, и я запускаю его с веб-сервера разработки на localhost. Одна деталь заключается в том, что я запускаю порт 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' });

});

Ответы [ 6 ]

29 голосов
/ 29 января 2009

У меня была похожая проблема с настройкой файлов cookie. Создайте доменное имя и добавьте его в файл hosts как 127.0.0.1. Затем запустите веб-приложение на этом домене.

12 голосов
/ 29 января 2009

Я обновил плагин jQuery, чтобы не добавлять домен в файл cookie, когда он является локальным. Это решает мою проблему, не трогая файл hosts.

var domain = (options.domain && options.domain !== 'localhost') ? '; domain=' + (options.domain) : '';
11 голосов
/ 29 января 2009

Я думаю, что доменное имя файла cookie должно содержать ровно две точки (не считая последнюю точку после TLD). Итак, .something.localhost в порядке, .google.com в порядке, но .localhost или google.com - нет. Но взгляд на RFC 2965 говорит о том, что это сложнее, чем это ... вы можете прочитать этот документ, особенно раздел 3.3 (и / или его предшественник RFC 2109 ).

6 голосов
/ 31 января 2010

Я использую Code Ignitor, и установка домена на пустую строку исправила мою проблему при работе с приложением на localhost. Я считаю, что это лучшее решение, так как всем в команде разработчиков не нужно возиться со своими файлами хоста в Windows.

Значения рабочего домена можно поместить в config.php Code Ignitor при развертывании на работающем сайте.

5 голосов
/ 29 января 2009

Я попытался настроить файл хоста на использование альтернативного имени (local.acme.com), и теперь я могу установить файлы cookie для этого домена. Кажется, я не могу установить куки на локальном хосте, по крайней мере, с Firefox. Я не помню, чтобы это было ограничение для куки. Я хотел бы понять, что здесь происходит.

Кроме того, я попытался просто сделать домен в файле hosts просто "dev", но это не сработало. Мне пришлось использовать имя, оканчивающееся на .com или другое tld, чтобы оно работало.

3 голосов
/ 26 октября 2010

Самое простое решение для меня это было использовать 127.0.0.1 вместо localhost ;-) Это отлично работает в Firefox!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...