除了 Location 之外,是否真的不能添加/修改 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 重定向(302 或 307)时设置一些 http 标头? https://stackoverflow.com/questions/6235142/is-it-possible-to-set-some-http-headers-while-http-redirect302-or-307
“实际上,通过 Java 对象,您可以设置请求属性,但不能设置标头。我自己正在寻找这个问题的答案。我相信这是一个故意的限制,以防止伪造身份验证令牌和通过标头发送的其他信息。
如果找到解决方案,我会发布解决方案。”
除了 Location 之外,是否真的不能添加/修改 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
如果这没有达到您预期的效果,请参阅同一问题的另一个答案 https://stackoverflow.com/a/6236892/733345:
您还应该确保您的响应标头引用该响应而不是客户端重定向到的资源。
那就是X-Atlassian-Token: no-check
header won't被带到后续请求(并且,具体来说,不会由客户端发送)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)