当输入一个错误的url时,怎么定向到404页面,使用JavaScript可以实现吗?

一个有多个页面的项目,当输入错误的url时候,如何跳转到自己写的404页面,是在服务器端设置的吗?

使用JavaScript可以实现吗?

阅读 10.2k
10 个回答

js当然搞不了了。服务端处理。他找资源。找到了返回找到了的,找不到返回一个默认资源,你认为的404。现在就是你把你准备的404给他咯。配置一下就好了

当然,你只是想判断一下存在不存在。然后决定跳转。可以用ajax去请求。能请求到就有。请求不到看返回值404的话你在做你的操作

前端路由可以实现

js半毛钱关系都木有,因为你又不是js提供的web服务,看你服务器上装的啥,nginx的话try_files就是专门干这个事情的。

vue中可以这样写,但是这是单页的

const router = new VueRouter({
    mode: 'history',
    routes: [
        {path:'login', component: Login},
        //这个要写在最后面
        { path: '*', component: NotFoundPage }
    ]
})

404页面应该是你的前端访问的某个url,后端没有找到,就给你返回配置好的404页面,同时将状态码啥的都改成404。

这事我觉得关键是你怎么定义"错误",而且这个错误是在哪里进行判断的.

建议有运维人员配置nginx 错误页面跳转到指定的页面!以免做2次页面跳转

这个要看项目具体是怎么组成的

  1. 如果是全静态的,一般这个是在服务器端进行配置,甚至服务器端可以有专门的部分动态生成特殊的404页面
  2. 如果是ajax动态请求,则一般服务器只响应请求,返回一个404错误,则你在ajax的处理过程中需要处理这个消息,自行跳转导航到预定的相关页面(比如404页面)

在服务器里配置404指定的页面,我用的ngnix,在配置文件里配好就ok

nginx下配置404全局跳转指定页面:

http模块下:

http{
    fastcgi_intercept_errors on;
    proxy_intercept_errors on;
    .....
}

server模块下:

server {
    error_page 404 = https://your 404 page url;
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏