zoukankan      html  css  js  c++  java
  • 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上。
     
    最后采购了 第三种方案!





  • 相关阅读:
    第30周日
    第30周六
    第30周五
    第30周四
    第30周三
    第30周二
    第30周一
    第29周日
    软件架构学习小结
    数据挖掘十大经典算法
  • 原文地址:https://www.cnblogs.com/cookray/p/9fd82ba3c52ce6478a0b0f2406b45a64.html
Copyright © 2011-2022 走看看