Javascript 如何确定站点404';然后将浏览器重定向到其他地方

Javascript 如何确定站点404';然后将浏览器重定向到其他地方,javascript,redirect,greasemonkey,Javascript,Redirect,Greasemonkey,我正在尝试为firefox编写一个greasemonkey脚本,在打开一个站点时检查该站点,看看该站点是否被404删除,然后自动将用户重定向到其他地方 谢谢向URI发出AJAX请求,并检查返回的XHR对象的响应代码中的404错误代码(或!=200) 你有权访问某种JS框架吗?通过“检查站点”,我想你指的是另一个域上的url // ==UserScript== // @name Redirect // @namespace test // @include

我正在尝试为firefox编写一个greasemonkey脚本,在打开一个站点时检查该站点,看看该站点是否被404删除,然后自动将用户重定向到其他地方


谢谢

向URI发出AJAX请求,并检查返回的XHR对象的响应代码中的404错误代码(或!=200)

你有权访问某种JS框架吗?

通过“检查站点”,我想你指的是另一个域上的url

// ==UserScript==
// @name           Redirect
// @namespace      test
// @include        *
// ==/UserScript==

if (/^about:neterror/.test(document.documentURI))
{
    location.assign(...);
}
由于客户端跨站点安全限制,如果没有目标服务的“合作”,就不能严格从客户端完成这项工作,我想这不是您的用例

一种常见的解决方案是使用某种服务器端代理

如果您使用站点上的页面作为代理,则可以使其足够灵活,以接受检查任何URL的请求

  • 在您的站点上创建一个资源页,例如checkRemotePage.php
  • php调用目标站点的页面并获取响应代码
  • 通过ajax调用page/checkRemotePage.php以获取检索到的数据
如果您的需求仅限于静态url或url前缀的小列表,则可以使用ApacheModu代理

  • 启用mod_代理
  • 使用ProxyPass条目/检查远程页面

在GM中进行XHR调用不需要JS框架:如果“站点”指的是其他域,那么由于“同源策略”,即跨站点脚本安全限制,XHR无法实现这一点。唉,这在很多情况下都不起作用,因为许多(?大多数?)服务器会为其404响应一个HTML页面。此外,Greasemonkey不再在
about:
页面上激发。