Ответ 1
У меня была аналогичная проблема с настройкой файлов cookie. Создайте доменное имя и добавьте его в свой файл hosts как 127.0.0.1. Затем запустите веб-приложение в этом домене.
Я использую плагин 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' });
});
У меня была аналогичная проблема с настройкой файлов cookie. Создайте доменное имя и добавьте его в свой файл hosts как 127.0.0.1. Затем запустите веб-приложение в этом домене.
Я обновил плагин jQuery, чтобы не добавлять домен в файл cookie, когда он является localhost. Это решает мою проблему, не касаясь файла hosts.
var domain = (options.domain && options.domain !== 'localhost') ? '; domain=' + (options.domain) : '';
Я думаю, что доменное имя файла cookie должно иметь ровно две точки (не считая конечной точки после TLD). Итак, .something.localhost
в порядке, .google.com
в порядке, но .localhost
или google.com
нет. Но взгляд на RFC 2965 предполагает, что он более сложный, чем этот... вы можете прочитать этот документ, особенно раздел 3.3 (и/или его предшественник, RFC 2109).
Я использую Code Ignitor, и установка домена в пустую строку исправила мою проблему во время работы над приложением на localhost. Я считаю, что это лучшее решение, так как всем в команде разработчиков не нужно возиться со своими файлами хостов в Windows.
Производственные значения домена могут быть помещены в config.php кода Ignitor при развертывании на реальном сайте.
Я попробовал настроить файл хоста для использования альтернативного имени (local.acme.com), и теперь я могу установить файлы cookie в этом домене. Кажется, я не могу установить файлы cookie на localhost, по крайней мере, не с Firefox. Я не помню, что это ограничение для файлов cookie. Я хотел бы понять, что здесь происходит.
Кроме того, я попытался просто сделать домен в файле hosts просто "dev", но это не сработало. Мне пришлось использовать имя, которое закончилось в .com или другом tld, чтобы заставить его работать.
Самое простое решение для меня решить это было использовать 127.0.0.1 вместо localhost;-) Это прекрасно работает в Firefox!