我正在使用 ServerXMLHTTP 来执行 HTTP POST。返回的响应是一个重定向(特别是 303 See Other)。ServerXMLHTTP 会自动遵循此重定向,但这会导致身份验证失败,因为未传播原始请求的 Authorization 标头。
有没有办法可以防止自动重定向(或者确保重新发送授权标头)?
我正在使用 ServerXMLHTTP 来执行 HTTP POST。返回的响应是一个重定向(特别是 303 See Other)。ServerXMLHTTP 会自动遵循此重定向,但这会导致身份验证失败,因为未传播原始请求的 Authorization 标头。
有没有办法可以防止自动重定向(或者确保重新发送授权标头)?
ServerXMLHTTP 不支持拦截重定向(请参阅Microsoft 知识库文章 308607)。但是,可以使用WinHTTP代替它,并且它确实包含一个可配置的“启用重定向”选项。
如何在 VBA 中禁用 WinHTTP 重定向:
webClient.Option(6) = False
在上下文中:
Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")
webClient.Option(6) = False
webClient.Open "POST", "http://example.com", False
webClient.send ("")