• JQuery load 请求资源不存在跳到了 404 页面。


    今天在做一个内容网站时,遇到一个问题,描述如下:
    一个文章页面(页面a) 需要加载用户的评论内容页面(页面b) ,  但是有些文章是没有评论的,也就是说页面b可能不存在,
    那样在使用 jQuery的load 方法加载时就会出现 404的情况,这个可以通过 ajax 的状态码去判断是否加载成功,但是因为配置了404的错误页面
    所以ajax的状态码总是成功的,即请求总是有响应(页面b或者404页面)。
     
    问题来了, 项目部署是采用apache + tomcat 的结构, apache主要负责静态资源(html, css, image, js..) , tomcat 主要负责动态的内容
    在apache 和 tomcat 都配置了 404 的页面,所以就出现了以下的情况:
    页面a 通过 jQuery 的load 方法加载 页面b 时, 页面b 不存在, 结果把 404 页面加载到了 页面a , 且 404 页面会自动跳转到首页。
    这可怎么办呢: 我想了以下对策:
    1:JQuery请求一个 action, 通过 action去判断页面b 是否存在,并读取以流的形式输出到页面a上,发现这样的效率比较低 (pass)
    2:   JQuery请求一个 action, 通过 action去判断页面b 是否存在,告诉页面a , 然后再确定是否加载 页面b。 这个的话,每次都要请求两次服务器。(pass)
    3:  最后思来想去,jQuery load() or ajax() 在加载页面b的时候总会返回一个页面(页面b或都404页面), 就通过 responseText.indexOf("404")>0 来判断请求到的是哪个页面,然后再确定是否将这个页面显示到页面a上。
     
    最后采购了 第三种方案!





  • 相关阅读:
    html5基础---canvas
    html5基础---h5特性
    JS常用知识点(一)
    微信小程序开发(一)基础知识学习
    关于C# winform唤起本地已安装应用程序(测试win10,win7可用)
    js原型链结构理解
    JS闭包应用场景之函数回调(含函数的调用个人理解)
    (十三)MySQL锁机制
    (十一)MVCC-多版本并发控制机制(转)
    jvm014-垃圾回收器
  • 原文地址:https://www.cnblogs.com/cookray/p/9fd82ba3c52ce6478a0b0f2406b45a64.html
Copyright © 2020-2023  润新知