Ich versuche, eine Perl-Seite zu schreiben, die eine HTTP 302-Antwort an einen anderen Ort zurückgibt und einen benutzerdefinierten Header zu dieser Antwort hinzufügt. so sollte meine gewünschte HTTP-Antwort so etwas wie dieses:Hinzufügen eines Antwortheaders zu 302 Antwort mit 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
Ich habe versucht, 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);
, und ich tue 302 Antwort erhalten Google, aber kein custom_header. Sobald ich den Status von $r->status(200);
auf 200 ändere, bekomme ich den CUSTOM_HEADER. Also, was ist mit diesem Verhalten? Wie kann ich meinen Header zur 302 Antwort hinzufügen?
Dank für Ihre Hilfe. Übrigens, warum wird 302 als Fehlerreaktion betrachtet? – Oded
@Oded - Gute Frage. Ich habe Ihren Punkt :) Statuscodes 1xx sind informativ, 2xx Erfolg, 3xx Umleitung, 4xx Client Error und 5xx Server Error. 302 ist also kein Erfolg, kein Fehler. Also was ist es? In diesem Fall ist es für dieses Modul und die Funktionalität ein Fehler. Frag nicht warum :) –