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

时间:2015-07-17 16:43:19

标签: javascript jquery ajax google-chrome href

有一个javascript行(您可以在浏览器控制台中试用)

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

会将您推送到http://example.com

在浏览器(谷歌浏览器)中 - >开发者工具 - >网络部分您可能会看到状态为200.

问题是:

如何在执行

之前正确获取状态代码200/404/302
window.location.href='http://example.com'

谢谢。

P.S。 jQuery可以使用。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

HTTP状态代码由服务器生成,因此在获取状态代码之前需要执行针对服务器的一些HTTP请求 - 因此您需要在URL上执行Ajax调用 - 适应简单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

有了这些,您可能会遇到跨站点脚本限制,您可以单独进行研究 - 已经存在很多堆栈溢出问题。