2

除了位置之外,您不能添加/修改 307 标头是真的吗?我正在尝试在 Node.js 中执行此操作,并且似乎客户端未使用新添加的标头 'X-Atlassian-Token': 'no-check' 。

    res.writeHead(307,
        {
            'Location': 'http://www.mytest.com?os_authType=basic',
            'Content-Type': 'multipart/form-data',
            'X-Atlassian-Token': 'no-check'
        });
    res.end();

有人在 Stackoverflow 上问过同样的问题,有人回答 -

是否可以在 http-redirect(302 或 307)时设置一些 http 标头?

“实际上,通过 Java 对象,您可以设置请求属性,但不能设置标头。我自己正在寻找这个问题的答案。我相信这是为了防止伪造身份验证令牌和其他通过标头发送的信息的故意限制。我将发布一个如果我找到一个解决方案。”

4

1 回答 1

2

除了位置之外,您不能添加/修改 307 标头是真的吗?

不,这不是真的。运行您的代码会显示一个响应,其中包括指定的状态代码和额外的标头:

HTTP/1.1 307 Temporary Redirect
Location: http://www.mytest.com?os_authType=basic
Content-Type: multipart/form-data
X-Atlassian-Token: no-check
Date: Sat, 06 Jun 2015 13:40:41 GMT
Connection: keep-alive
Transfer-Encoding: chunked

如果这没有达到您期望的效果,请参阅同一问题的其他答案

您还应该确保您的响应标头引用该响应,而不是客户端被重定向到的资源。

也就是说,X-Atlassian-Token: no-check标头不会被传递到后续请求(具体来说,不会由客户端发送)。

于 2015-06-06T13:46:09.197 回答