在服务器上禁止Javascript访问

时间:2015-12-14 19:09:03

标签: javascript jquery html css ajax

我真的很困惑这个,我的代码在Localhost上工作正常但在Fasthosts服务器上没有,它似乎是服务器上某个文件夹的某种访问问题,这里是调试消息。

GET (http://reggarockaboogie.co.uk/images/gallery/fld01/) 403 (Forbidden)

k.cors.a.crossDomain.send @ jquery.min.js:4
n.extend.ajax             @ jquery.min.js:4
LoadGallery               @ gallery.html:95
(anonymous function)      @ gallery.html:86
j                         @ jquery.min.js:2
k.fireWith                @ jquery.min.js:2 
n.extend.ready            @ jquery.min.js:2
I                         @ jquery.min.js:2

这是我的代码,



     < script >
      $(document).ready(function() {
        LoadGallery($('a[data-albumid]:first').data('albumid'));
        $("a").click(function() {
          var dir_path = $(this).data("albumid");
          LoadGallery(dir_path);
          return false;
        });
      });

    function LoadGallery(dir_path) {
      $.ajax({
        url: dir_path,
        success: function(data) {

          $(".image-container").empty();

          $(data).find("a:contains(.jpg), a:contains(.png), a:contains(.jpeg)").each(function() {
            this.href.replace(window.location.host, "").replace("http:///", "");
            var file = dir_path + $(this).text();
            $(".image-container").append($("<a href='javascript:;' class='thumb' data-src='" + file + "'><img src='" + file + "' title='Click to        enlarge' alt='#'/></a>"));

            if ($(".image-container").children("a").length === 30) {
              return false;
            }
          });

          $(".image-container").append("<strong><p>Click on a thumb nail to show a larger image.</p></strong>");

          $(".thumb").bind('click', function() {
            var Popup = "<div class='bg'></div>" + "<div class='wrapper'><img src='<img src=''/>" + "<label href='javascript:;' class='prev-image'>«</label><label href='javascript:;' class='next-image'>»</label><a href='javascript:;' class='close' title='Close'>Close</a>";
            var Img = $(this).attr("data-src");
            $("body").prepend(Popup);
            $(".bg").height($(window).height() * 4);
            $(".wrapper img").attr("src", Img);

            $(".prev-image").bind('click', function() {
              var prev = $(".image-container").find("img[src='" + Img + "']").parent().prev('a').find("img").attr('src');
              if (!prev || prev.length === 0)
                return false;
              else {
                $(".wrapper img").attr("src", prev);
                Img = prev;
              }
            });

            $(".next-image").bind('click', function() {
              var next = $(".image-container").find("img[src='" + Img + "']").parent().next('a').find("img").attr('src');
              if (!next || next.length === 0)
                return false;
              else {
                $(".wrapper img").attr("src", next);
                Img = next;
              }
            });

            $(".close").bind('click', function() {
              $(this).siblings("img").attr("src", "")
                .closest(".wrapper").remove();
              $(".bg").remove();
            });
          });
        }
      });
    }; < /script>
&#13;
@import url(http://fonts.googleapis.com/css?family=Varela+Round);

#nav {
    float: left;
    width: 20px;
    margin: 10px 10px 20px 0px;
}
#nav, #nav ul {
    list-style: none;
    padding: 0;
}
#nav a {
    position: relative;
    display: block;
    width: 105px;
    padding-left: 10px;
    margin: 3px 0;
    text-decoration: none;
    font-family: Geneva, Arial, Helvetica, sans-serif;
    font-variant: small-caps;
    font-weight: bold;
    color: #fff;
}
#nav a:link, #nav a:visited {
    border-left: #00425E solid 10px;
    color: #fff;
}
#nav a:hover, #nav a:active {
    border-left-color: #fff;
    background-color: #770709;
    color: #fff;
}
#nav a#here {
    border-left-color: #fff;
    background-color: transparent;
    color: #fff;
}
#nav ul {
    margin-left: 20px;
}
#nav ul a {
    width: 50px;
    color: #fff;
}
.image-container {
   padding-top: 50px;
}
.image-container img {
    background-color: white;
    border: 4px solid #444;
    box-shadow: 0 0 5px #222;
    padding: 3px;
    margin-top: 10px;
    height: auto;
    width: auto;
    max-width: 100px;
    max-height: 100px;
    transition: all .7s ease-in-out;
}
.image-container img:hover {
    border: 4px solid #888;
    cursor: zoom-in;
}
.bg {
    background-color: #333;
    filter: alpha(opacity=70);
    left: 0;
    opacity: 0.7;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
}
.wrapper {
    background-color: white;
    border: 3px solid #444;
    box-shadow: 0 0 5px #222;
    padding: 3px;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1001;
}
.wrapper .next-image {
    position: absolute;
    font-size: 2.8em;
    top: 50%;
    color: #999;
    width: 45px;
    line-height: 30px;
    text-align: center;
    height: 45px;
    border-radius: 100%;
    opacity: 0.7;
    filter: alpha(opacity=40); /* For IE8 and earlier */
    right: 10px;
    left: auto;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.wrapper .prev-image {
    position: absolute;
    font-size: 2.8em;
    top: 50%;
    color: #999;
    width: 45px;
    line-height: 30px;
    text-align: center;
    height: 45px;
    border-radius: 100%;
    opacity: 0.7;
    filter: alpha(opacity=40); /* For IE8 and earlier */
    left: 10px;
    right: auto;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.wrapper .prev-image:hover {
    border: 2px solid #ccc;
    cursor: pointer;
    opacity: 1;
}
.wrapper .next-image:hover {
    border: 2px solid #ccc;
    cursor: pointer;
    opacity: 1;
}
.close {
    background: transparent url(../gallery/close.png) no-repeat;
    height: 32px;
    position: absolute;
    right: -16px;
    text-indent: -9999px;
    top: -16px;
    width: 32px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1 /jquery.min.js"></script>
<div id="content-container" style="height: 600px;">
  <div id="content" style="height: 600px;">
    <div style="float: left; width: 200px;">
      <h1> <span>The Gallery</span> </h1>
      <ul id="nav">
        <li><a href="" id="here">Gallery</a>
          <ul>
            <li><a href="#" data-albumid="images/gallery/fld01/">2014</a>
            </li>
            <li><a href="#" data-albumid="images/gallery/fld02/">2014</a>
            </li>
            <li><a href="#" data-albumid="images/gallery/fld03/">2014</a>
            </li>
            <li><a href="#" data-albumid="images/gallery/fld04/">2015</a>
            </li>
            <li><a href="#" data-albumid="images/gallery/fld05/">2015</a>
            </li>
          </ul>
        </li>
        <li><a href="../index.html">Back to home</a>
        </li>
      </ul>
    </div>
    <div class="image-container">
      <strong><p>Select a menu option to display a list of thumb nails.</p></strong>
    </div>
    <!-- Script goes here -->

    <div class="clear"></div>
  </div>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:5)

网址返回403错误;这根本与您的客户端代码无关。

最可能的原因是:

  • 禁用自动生成的目录列表(需要更改服务器配置,例如对于Apache:索引option)。
  • 服务器上的目录设置了文件权限,以便Web服务器软件运行的用户无法读取(通常使用chmod更改)