Ajax成功:功能(数据)不是premmision 403(禁止)

时间:2016-12-15 18:54:26

标签: javascript jquery html ajax

这是我简单的ajax请求:

$.ajax({
    url: "my/dir/",
    success: function (data) {
        console.log(data);
    }
});

当我在我的本地主机上执行它时(白色括号实时预览)它会生成一个包含该目录数据的html文件,我可以使用它来解析数据,如:

$(data).find("a:contains(.jpg)").each(function () {

它完美无瑕!但是当我在我的主机提供程序上执行相同的ajax函数时,它会产生 403(Forbidden)错误,并生成一个包含错误内容的html文件,例如

  

您没有权限,请与您的主机提供商等联系。

他们告诉我这是因为在这个目录中没有要执行的索引文件..所以他们让我更困惑,然后他们帮助了我。

是否有解决方法不在每个目录中手动创建索引文件? 或者是我错过了 $。ajax

的东西

以下是我的完整源代码,如果重要的话:

$('#accordion2 a').on('click', function () {
    if (!$(this).hasClass("added")) {
        $(this).addClass('added');
        var popid = $(this).attr('href');
        var dir = $(this).attr('id');
        $.ajax({
            url: "../images/com_droppics/" + dir
            , success: function (data) {
                $(data).find("a:contains(.jpg)").each(function () {
                    var filename = this.href.replace(window.location.host, "").replace("http://", "");
                    $(popid).append("<img class='zoomable draggable' style='position: relative; left: 0px; top: 0px;' src='" + filename + "'>");
                    $(".draggable").draggable({
                        revert: "invalid"
                    });
                    $(".draggable").disableSelection();
                })
                $('.zoomable').click(function () {
                    $(this).toggleClass('zoom');
                    $(".zoomable").not($(this)).removeClass('zoom');
                })
            }
        })
    }
})

再次..它在我的本地主机上工作得很好,当我点击&#34;#accordion2 a&#34;时,它会打开一个弹出窗口并将所有图像附加到提供的目录

1 个答案:

答案 0 :(得分:1)

您的Web服务器可能没有激活directory listings(这可能是您在本地服务器上提供文件列表的原因,可能正在运行Apache)。

您可以在远程服务器上激活它,具体取决于它运行的服务器软件及其配置方式。

尝试在根目录中创建(或打开).htaccess文件(或者,如果它只是一个您想要列出的目录,直接在该目录中),并让它说出来

Options +Indexes

然后,输入要从中获取列表的目录,并查看会发生什么。您可能仍然会收到403,500错误或目录列表。在前两种情况下,您需要与您的网络提供商联系,看看他们是否可以为您提供帮助。