Перенаправление на страницу и отправка пользовательских заголовков HTTP - PullRequest
4 голосов
/ 28 сентября 2011

Я использую следующий код для перенаправления на страницу в PHP. Мне нужно установить пользовательские заголовки HTTP для передачи вместе с перенаправлением.

header("Location: http://...");

Как мне это заархивировать?

Ответы [ 3 ]

27 голосов
/ 19 декабря 2016

Боюсь, все ответы неверны и вводят в заблуждение!

Невозможно перенаправить на страницу с установленными пользовательскими заголовками, независимо от того, какой язык или рамки вы используете.Другими словами, нет способа вызвать перенаправление HTTP и заставить клиента (браузер) добавить пользовательский заголовок.

Возможно, вы думаете, что использование нескольких вызовов header() должно работать нормально.Но это не так.Вы устанавливаете пользовательские заголовки для ответа, который инструктирует браузер перенаправлять, а не для самого перенаправления.

Единственный способ для сайта инструктировать браузер выдавать HTTP-запрос с пользовательским заголовком -использовать Javascript и объект XMLHttpRequest.И для того, чтобы разрешить такие запросы ajax, необходимо внедрить CORS на целевом сервере.

Обратите внимание, что страница не может устанавливать заголовки HTTP-запроса, если она не выполняет асинхронный запрос с использованием XMLHttpRequest.Это означает, что вы не можете сделать такое перенаправление с пользовательским заголовком на стороне клиента.

Интернет работает не так.

1 голос
/ 28 сентября 2011

Просто добавьте дополнительные header() звонки после или до этого.

header("Location: http://...");
header("Content-Type: text/plain");
0 голосов
/ 28 сентября 2011

Несколько header Документы звонки:

header("Location: ....");
header("Header2: ....");
header("Header3: ....");
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...