我试图了解为什么 OPTIONS 方法请求(大概是 CORS 预检请求)被记录为 200 状态,而所有 GET 方法请求都被记录为预期的 301(永久移动)。该地址唯一返回的是带有新地址的 Response.RedirectPermanent。
就上下文而言,301 已经存在几周了,而且在许多情况下,Referer URL 已经消失了很长时间,所以我的第一个想法是这是一个脚本化调用。除了这些 OPTIONS 请求之外,点击我正在查看的特定 URL 的其他所有内容都有明显的自动化迹象,例如来自早已消失的引用者。对于这些 OPTIONS 请求,日志中的给定地址通常只会对服务器进行一次调用,然后就不再调用了。因此,该模式表明它是某种形式的自动化的代理。再次强调,本段只是为了提供上下文,而不是问题本身。我并不担心潜在的自动化。
回到问题 - 为什么在这种情况下这些 OPTIONS 请求显示为 200?最终,我试图找出原因是因为我想知道我是否需要做任何事情来正确适应这些请求,或者这是否只是此类永久重定向请求的预期行为。
答案是——是的,这是预期的行为。跨子域的 CORS 请求不允许重定向,因此它会返回 200 状态。