Я пытаюсь написать страницу perl, которая возвращает ответ http 302 в другое место и добавляет настраиваемый заголовок к этому ответу. поэтому мой желаемый ответ HTTP должно быть что-то вроде этого:Добавление заголовка ответа в ответ 302 с использованием perl
HTTP/1.1 302 Moved
Date: Sun, 15 Apr 2012 10:59:02 GMT
Server: Apache
Location: http://www.google.com
Content-Length: 396
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
CUSTOM_HEADER: CUSTOM_VALUE
я попытался с помощью CGI:
#!/bin/perl
use strict;
use APR::Request::Apache2;
my $r = shift;
$r->content_type('text/html; charset=utf-8');
$r->headers_out()->add("CUSTOM_HEADER", "CUSTOM_VALUE");
$r->headers_out()->add("Location", "http://www.google.com");
$r->status(302);
и я получаю 302 ответа не Google, но не CUSTOM_HEADER. как только я меняю статус на 200 на $r->status(200);
, я получаю CUSTOM_HEADER. так что с этим поведением? как я могу добавить заголовок в ответ 302?
спасибо за вашу помощь. кстати, почему 302 рассматривается как ответ об ошибке? – Oded
@Oded - Хороший вопрос. Я получил вашу точку :) Коды состояния 1xx являются информационными, 2xx Success, 3xx Redirection, 4xx Client Error и 5xx Server Error. Так что 302 не успех, а не ошибка. Так что это? В этом случае для этого модуля и функциональности это ошибка. Не спрашивайте почему :) –