如何获取页面加载前的状态码
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
有了所有这些,您可能 运行 进入跨站点脚本限制,您可以单独进行研究——已经有很多堆栈溢出问题。
有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
有了所有这些,您可能 运行 进入跨站点脚本限制,您可以单独进行研究——已经有很多堆栈溢出问题。