Отправка информации с перенаправлением HTTP, которую браузер должен отправить в перенаправленное местоположение?
-
12-09-2019 - |
Вопрос
Возможно ли это?.например, представьте, что я отвечаю на запрос с помощью 302 (или 303) и сообщаю браузеру выполнить запрос в заданное местоположение..есть ли заголовок, который я могу отправить с HTTP 302, чтобы последующий запрос из браузера включал этот заголовок?
Я знаю, что мог бы сделать это с заголовком location, как в redirect и указать информацию в URL в виде строки запроса..но мне интересно, есть ли способ получше..кажется, что это должен быть законный сценарий..
" Контент переместился, идите сюда ..о, и вы захотите взять это с собой, чтобы передать в место перенаправления '
Я предполагаю, что большое жирное "нет"!
Заранее благодарю.
Редактировать
Причина этого связана с шаблонами PRG, где у вас есть URL-адрес GET и URL-адрес POST, учитывая, что вы отправляете данные, и это неприемлемо, сервер перенаправляет вас на GET и выполняет некоторую "магию", чтобы "отправить данные" в этот GET, чаще всего используя состояние сеанса для хранения переменной.
Однако это может разбивка сценариев, в которых выполняются многие из этих запросов PRG, при условии, что это не обычный сценарий, и, как правило, никому не нужно беспокоиться об этом..но если вы это сделаете - вам понадобится способ идентифицировать запросы, это можно сделать с помощью параметров строки запроса, отправляемых в 302..так что конкретная запись может быть переведена в состояние сеанса в соответствии с этим запросом.
Вопрос касался попытки удалить "ключ запроса" из URL-адреса и сделать его более неявным..файлы cookie "кажутся" работающими, но они только уменьшают окно для ошибок.
Было бы здорово сказать, что когда вы отправитесь в указанное мной "местоположение", отправьте эти параметры.
Редактировать
Просто чтобы отметить, я не пытаюсь заставить браузер отправлять произвольные заголовки в местоположение, но если есть КАКИЕ-либо заголовки, предназначенные для указания контекста запроса (например, параметры querystring могли бы).
Решение
Сам ответ перенаправления не содержит никаких данных.Вы можете перенаправить, используя URL-адрес с параметрами запроса, но новому "местоположению" нужно будет знать, как использовать эти параметры.
Другие советы
Нет, это невозможно.Вы не можете принудить клиента к чему-либо.Вы просто можете сказать: “это неподходящее место, но попробуйте вместо этого это место”.Но это не гарантирует, что клиент отправит тот же запрос или другой запрос в это новое местоположение.И указание клиенту добавить определенное поле заголовка в этом последующем запросе в новое местоположение также невозможно.