Документация PHP для функции header () < /code> говорит нам: < /p>
Существует два вызова заголовка в специальном случае ... Второй специальный случай-«Местоположение:» заголовок. Мало того, что он отправляет этот заголовок обратно в браузер, но также возвращает код состояния перенаправления (302) в браузер, если только 201 или код состояния 3XX уже не установлен. Как я могу это сделать, если вообще? Я попробовал несколько вариантов на следующем без повезло: < /p>
header('Location: https://example.com/foo', true, 200);
http_response_code(200);
header('HTTP/1.1 200 OK', true, 200);
header('Content-Type: application/json');
echo '{"test":"testing"}';
< /code>
Согласно моему пониманию источника PHP, первая строка должна сделать это из-за явного указанного кода состояния: < /p>
if ((SG(sapi_headers).http_response_code < 300 ||
SG(sapi_headers).http_response_code > 399) &&
SG(sapi_headers).http_response_code != 201) {
/* Return a Found Redirect if one is not already specified */
if (http_response_code) { /* user specified redirect code */
sapi_update_response_code(http_response_code);
} else if (SG(request_info).proto_num > 1000 &&
SG(request_info).request_method &&
strcmp(SG(request_info).request_method, "HEAD") &&
strcmp(SG(request_info).request_method, "GET")) {
sapi_update_response_code(303);
} else {
sapi_update_response_code(302);
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... ion-header