Подтвердить что ты не робот

Могу ли я использовать localhost в качестве домена при настройке HTTP файла cookie?

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

Вот плагин, который я использую с 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' });

});
4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

Производственные значения домена могут быть помещены в config.php кода Ignitor при развертывании на реальном сайте.

Ответ 5

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

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

Ответ 6

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