当上次响应的代码是 200 而不是 301 时,浏览器如何定向到新的 URL

问题描述 投票:0回答:1

我们使用 Auth0 的 OpenID 通过 ASP.NET OWIN 组件进行连接。在 Chrome Devtool 中,有一个请求我不明白它是如何发生的。

第一个请求是

https://iguide-login.us.auth0.com/authorize/resume
。它的响应是
200
并且没有响应内容。另外,这个请求类型是document,不是ajax。

谁初始化下一个请求到

/callback/
?如果第一个响应代码是
301
,那么我就能理解。但为什么
200
也能导致重定向呢?

这是详细信息。

第一个请求详细信息。

enter image description here

第一个请求的响应内容为空。

enter image description here

第一个请求类型是文档。

enter image description here

asp.net oauth-2.0 openid-connect auth0
1个回答
0
投票

我终于找到根本原因了。只是分享给可能也有同样疑问的人。 以前,我认为

/resume...
不会返回任何 html 内容,因为 Chrome devtool 说

无法加载响应:未找到具有给定标识符的资源。

虽然我最终发现

/resume...
确实返回了html内容。我用 Fiddler 得到了它。因此,Chrome 开发工具多年来一直存在这个
Failed to load response
的错误或争论。当我们看到这个错误时,我们可以使用Fiddler来获取实际的响应内容。

这里是

/resume
的完整响应内容,它清楚地说明了浏览器进行重定向的原因。

<html>

  <head>
    <title>Submit This Form</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  </head>

  <body onload="javascript:document.forms[0].submit()">
    <form method="post" action="https://xxx/callback/">xxx</form>
  </body>

</html>
© www.soinside.com 2019 - 2024. All rights reserved.