问题描述
有一个javascript行(你可以在浏览器控制台中试试)
window.location.href='http://example.com'
这将推动你到http://example.com
在浏览器(谷歌浏览器) - >开发人员工具 - >网络部分,您可能会看到状态为200。
问题是:
如何在执行之前正确获取状态代码200/404/302
window.location.href='http://example.com'
谢谢。
PS jQuery可以使用。
1楼
获取状态代码的唯一方法是在导航之前发出请求。 这意味着对资源进行Ajax调用并检查状态。 唯一的缺点是同源策略,因此站点需要位于同一个域中,或者必须为您的资源启用CORS。
2楼
HTTP状态代码由服务器生成,因此在获取状态代码之前需要执行针对服务器的一些HTTP请求 - 因此您需要在URL上执行Ajax调用 - 在调整简单示例 ,你会碰到这样的;
$.get( "http://example.com", function( data ) {
// Yeahh the URL works, we can do the page switch
window.location.href='http://example.com';
});
还有其他一些处理错误处理的例子,但你可以自己阅读。
当然,你不需要整个页面只获得状态,你可以只执行一个HTTP-HEAD,你可以在讨论
有了这些,您可能会遇到跨站点脚本限制,您可以单独进行研究 - 已经有很多堆栈溢出问题。