【发布时间】:2012-02-05 05:32:12
【问题描述】:
我想发送401 Unauthorized 并将客户端重定向到某个地方。然而:
如果我这样做:
header('HTTP/1.1 401 Unauthorized');
header('Location: /');
服务器发送302 Found 和Location,所以不是401 Unauthorized。
如果我这样做:
header('Location: /');
header('HTTP/1.1 401 Unauthorized');
浏览器同时收到401 Unauthorized 和Location,但不重定向。
(IE 9 和 Chrome 16 的行为相同,所以我猜它是正确的)
也许我误用了 HTTP?我希望我的应用程序界面对所有客户端都完全相同:文本浏览器、现代浏览器、API 调用等。401 + 响应文本会告诉 API 用户什么是什么。重定向对浏览器很有用。
有(好的)方法吗?
【问题讨论】:
标签: http-headers http-status-code-401 http-redirect