除了位置之外,您真的不能添加/修改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上问了同样的问题,一个人回答了-
Is it possible to set some http headers while http-redirect(302 or 307)?
“实际上,通过Java对象,可以设置请求属性,但不能设置头。我自己也在找答案。我相信这是一个故意的限制,以防止伪造身份验证令牌和通过头发送的其他信息。
如果我找到解决方案,我会发布一个。”
最佳答案
除了位置之外,您真的不能添加/修改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
头不会被传递到后续请求(特别是,客户端不会发送)。