Сначала - невозможно сказать (окончательно), поддерживает ли клиент куки или нет, пока вы не установите их.И если вы делаете это на стороне сервера, так как куки отправляются как часть HTTP-запроса, у вас будет иметь , чтобы выполнить какое-то перенаправление для этой проверки:
client server
1a. GET index.html ---->
1b. <------------ sets a cookie, redirect to index.html?foo=bar
2. GET index.html?foo=bar -->
Использование Javascript позволяет обойти это, так как вы можете, по крайней мере, запросить, был ли установлен cookie на стороне клиента, не требуя от клиента повторного запроса - но это, как вы говорите, Javascript.
Обратите внимание, чтоэтот вид проверки не совсем надежен;в действительности это не подтверждает, что файлы cookie будут сохраняться каким-либо полезным способом (например, антишпионская программа может очищать файлы cookie каждые 30 минут).Он даже не подтверждает, что вы сможете установить следующий файл cookie (особенно, если он находится на другом поддомене; или пользователь, возможно, попросил UA запрашивать каждый файл cookie, просто потому, что это печенье принято не означает, что следующий будет).И в следующий раз, когда пользователь войдет в него, возможно, из другого браузера (с другими настройками), или они изменили свои настройки безопасности на этом и т. Д.
Действительно, я бы подумал об этом в том жекак проверка формы на стороне клиента - приятно иметь возможность предупреждать ваших посетителей, когда они пытаются что-то, что просто не сработает, но вы не можете полагаться на то, что это правильно.И в этом контексте ваше последнее предложение немного беспокоит - поскольку вы говорите, что нужно для работы.Каковы последствия, если этот тест не соответствует действительности (то есть вы думаете, что можете устанавливать файлы cookie, но на самом деле не можете)?Я не говорю, что ваш сайт должен работать без файлов cookie, просто вы должны понимать, что ваши чеки могут давать ложные срабатывания, и вы должны знать об этом.
Так что в этом контексте я быскажем, что, вероятно, лучше сделать проверку в Javascript;если у кого-то отключены файлы cookie JS и , они не смогут взаимодействовать с большинством сайтов, которые имеют какой-либо логин.Когда вы получаете запрос без файлов cookie, вы должны отправить обратно «Похоже, у вас есть страница с отключенными файлами cookie» в любом случае , поэтому вряд ли удастся сломать игру, если начальная проверка была пропущена.