2017-01-28 3 views
1

Если вы отправляете AJAX запрос на сервер и ваш размер печенья слишком велик, вы получите сообщение:Как фильтровать файлы cookie при отправке запроса ajax?

Bad Request

Ваш браузер послал запрос, что этот сервер не мог понять. Размер поля заголовка запроса превышает лимит сервера.

Cookie

Есть ли способ, чтобы фильтровать печенье с помощью JavaScript (JQuery, Угловое) перед отправкой запроса? Например: у меня есть 25kb файлов cookie на определенном веб-сайте (ограничение на сервере - 16kb), среди них есть cookie сеанса. Как я могу отправить только cookie сеанса на сервер или файлы cookie, которые я хочу? Это возможно без удаления избыточных файлов cookie?

Другой пример: У меня есть доменное печенье .mysite.com. Если я перехожу к one.mysite.com, я получаю еще несколько файлов cookie, когда я перехожу к two.mysite.com. Установлены новые файлы cookie и т. Д. Когда я отправляю запрос ajax с одного из этих сайтов, куки-файлы суммируются, и все они отправляются в заголовок запроса, который может превышать лимит сервера.

У меня много куки, но никто не превышает 3kb. Главный вопрос: можно ли фильтровать файлы cookie в JavaScript по имени домена?

+0

Я немного смущен ... если файл cookie слишком велик для вашего сервера (обратите внимание, что файлы cookie хранятся на клиенте, где ограничение равно 4k), это должно быть проблемой не только в запросе ajax, но и в любом http-запрос. пожалуйста, предоставьте дополнительную информацию. почему ваш cookie больше 4k (ограничение размера вашего стандартного файла cookie)? – jeremy

+0

@jeremy У меня есть файлы cookie домена '.mysite.com'. Если я перейду на 'one.mysite.com', я получу еще один куки-файл, когда я перейду на' two.mysite.com', будут установлены новые файлы cookie и т. Д. Когда я отправляю запрос ajax с одного из этих файлов, куки-файлы суммируются, и все они отправляется в заголовок запроса, который может превышать лимит сервера. –

+0

Да очень смущает. Сколько файлов cookie вы создаете для предварительного домена? Есть ли файлы cookie, которые превышают 4k? Вы всегда можете вызывать один файл cookie за раз, но если он слишком велик, вы сохраняете много способов в одном cookie. Можете переосмыслить свой код. –

ответ

0

Просто установите домен и атрибуты пути на вашем печенье, как:

<script type="text/javascript"> 
var cookieName = 'HelloWorld'; 
var cookieValue = 'HelloWorld'; 
var myDate = new Date(); 
myDate.setMonth(myDate.getMonth() + 12); 
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate + ";domain=.example.com;path=/"; 
</script> 

Тогда вы можете назвать печенье на это значение домена.

+1

Это нормально, но когда я отправляю запрос ajax со страницы, все файлы cookie со страницы отправляются на запрос заголовка. Есть ли возможность отправить определенные файлы cookie? –

Смежные вопросы