задача стоит такая: каждый раз при отправке POST или GET запроса от браузера к серверу нужно передавать определенную переменную. В список отсылаемых переменных (формы или адресной строки типа ?key=val1, или mysite/val1/) включать не хочу.
Я реализовал это с помощью кук, устанавливаешь значение куки, и она с каждым запросом передается на сервер. Удобно, что надо. Но есть один минус: кука устанавливается на все вкладки браузера. То есть, если на одной вкладке в браузере поменять значение куки, то на другой она тоже поменяется. А мне надо, чтобы на каждой открытой вкладке было бы свое значение.
есть какие-нибудь другие способы реализовать это? Может быть, другой механизм?
Адресная строка может быть одна и та же. В одной вкладке - один val1, в другой - val2
Спасибо за ответы
1. ПТО - 03 Августа, 2015 - 09:41:27 - перейти к сообщению
2. ПТО - 03 Августа, 2015 - 13:00:19 - перейти к сообщению
ну, или второй вариант: перед каждым запросом (синхронным, асинхронным, POST, GET) добавлять в него переменную. Тогда как это сделать, но не перебирать каждый запрос, а чтобы на автомате добавлялось.
3. Tyoma5891 - 03 Августа, 2015 - 14:16:04 - перейти к сообщению
Токены
4. DeepVarvar - 03 Августа, 2015 - 16:49:04 - перейти к сообщению
В каждую критичную форму/ссылку (не важно гет/пост) добавлять токен, который будет ключом данных в сессии, так по токену можно будет определить с какой именно формы прилетел запрос.
5. ПТО - 03 Августа, 2015 - 21:20:58 - перейти к сообщению
Такой вопрос:
можно ли одной и той же куке на одном и том же адресе дать два разных значения, каждое в своем окне, и чтобы они не перезаписали друг друга? Насколько я знаю, нет.
Или в html <head> заголовке можно указать параметр, который будет с каждым запросом автоматически добавляться к запросу?
можно ли одной и той же куке на одном и том же адресе дать два разных значения, каждое в своем окне, и чтобы они не перезаписали друг друга? Насколько я знаю, нет.
Или в html <head> заголовке можно указать параметр, который будет с каждым запросом автоматически добавляться к запросу?
6. DeepVarvar - 03 Августа, 2015 - 22:12:21 - перейти к сообщению
ПТО пишет:
Конечно -- сессии.
можно ли одной и той же куке на одном и том же адресе дать два разных значения
7. etoYA - 03 Августа, 2015 - 23:34:25 - перейти к сообщению
А почему не sessionStorage?
8. DeepVarvar - 04 Августа, 2015 - 04:08:27 - перейти к сообщению
А почему sessionStorage?
9. ПТО - 04 Августа, 2015 - 08:18:55 - перейти к сообщению
DeepVarvar пишет:
ПТО пишет:
можно ли одной и той же куке на одном и том же адресе дать два разных значения
Конечно -- сессии.
можно ли одной и той же куке на одном и том же адресе дать два разных значения
Конечно -- сессии.
Как? Можно куки различать по адресу:
setcookie("testcookie", "value1hostonly", time(), "/", ".example.com", 0, true);
если путь ("/") одинаковый, тот куки с одинаковым именем будут перезаписывать друг друга
10. etoYA - 04 Августа, 2015 - 15:00:57 - перейти к сообщению
DeepVarvar пишет:
А почему sessionStorage?
Может я в чем то не прав, но задача была такой:
Я хочу, чтоб где то хранились данные, которые я могу подставлять при POST/GET запросе, да еще так, чтоб они не пересекалась с другими вкладками.
Если так, то зачем куки?
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
- <button onclick="s()">SET</button>
- <button onclick="g()">GET</button>
- <script>
- function s() {
- sessionStorage.setItem('i', Math.floor(Math.random() * 100));
- }
- function g() {
- console.log(sessionStorage.getItem('i'));
- }
- </script>
- </html>