如何获取页面加载前的状态码

How to get the status code of the page before it is loaded

有javascript行(可以在浏览器控制台试试)

window.location.href='http://example.com'

那会把你推到 http://example.com

在浏览器(Google Chrome)->开发者工具->网络部分,您可能会看到它的状态为 200。

问题是:

如何在执行之前获取正确的状态码 200/404/302

window.location.href='http://example.com'

谢谢。

P.S。 jQuery可以使用。

获取状态代码的唯一方法是在导航到那里之前发出请求。这意味着对资源进行 Ajax 调用并检查状态。唯一的缺点是同源策略,因此站点需要在同一个域中,或者它们必须为您的资源启用 CORS。

HTTP 状态代码由服务器生成,因此需要先执行一些针对服务器的 HTTP 请求,然后才能获取状态代码——因此您需要对 Ajax 调用url -- 改编 JQuery.get 中的简单示例,您将得到类似的东西;

$.get( "http://example.com", function( data ) {
  // Yeahh the URL works, we can do the page switch
  window.location.href='http://example.com';
});

JQuery.get 中还有处理错误处理等的其他示例,但您可以自己阅读这些示例。

当然,您不需要整个页面来获取状态,您可以只执行一个 HTTP-HEAD,您可以看到讨论 here

有了所有这些,您可能 运行 进入跨站点脚本限制,您可以单独进行研究——已经有很多堆栈溢出问题。