【问题标题】:Does response header get dropped after redirect?重定向后响应标头是否会被丢弃?
【发布时间】:2018-01-11 10:37:13
【问题描述】:

我正在尝试将 JWT 令牌从 1 个 api 发送到另一个。

出于测试目的,我这样做了:

@GetMapping("somewhere")
public void handleRedriect(HttpServletResponse response) throws IOException {
        response.setHeader("Authorization", "Bearer "+"someRandomJWT");
        response.sendRedirect("https://www.quora.com/");    
}

当我观察标头时,“randomJWT”在 302 重定向请求之前一直存在,但在加载“quora.com”时被忽略。

在 quora 加载之后

【问题讨论】:

    标签: rest http client-server httpresponse


    【解决方案1】:

    响应标头从服务器发送到客户端,客户端通常是浏览器,如 IE、FF、Chrome、移动设备等。只有在接收方可以解释的情况下,标头才有意义正确。当您发送 response.sendRedirect 并设置一些标头(如 Authorization)时,浏览器不会将此标头转发到现在的站点重定向到。

    如果您一心想将某些参数传递给浏览器将重定向到的站点,则必须将该参数传递作为 URL 参数,或者您可以生成全新的相同请求以发送到您的重定向服务器。

    【讨论】:

    • 谢谢。您能否详细说明最后一行,即新的相同请求?我想现在它是由浏览器自动生成的
    • 希望将一些数据发送到新 URL 的服务器应该通过将其作为查询字符串变量附加到 URL 来实现,例如:quora.com/?Authorization=someRandomJWT
    • 我理解参数附加部分。当您说生成新的相同请求时,您的意思是相同的吗?
    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    相关资源
    最近更新 更多