这是我的简单ajax请求:
$.ajax({
url: "my/dir/",
success: function (data) {
console.log(data);
}
});
当我在Localhost(Whit Brackets Live Preview)上执行它时,它会生成一个带有目录数据的HTML文件,我可以通过该文件使用一些JQuery解析数据,例如:
$(data).find("a:contains(.jpg)").each(function () {
它完美无瑕!但是,当我在主机提供商上执行相同的AJAX函数时,它给出了 403(禁止)错误,并且会生成带有错误内容的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');
})
}
})
}
})
再次..它在我的本地主机上效果很好,当我单击"#councorion2 a"时,它打开弹出窗口并使用提供的目录
您的Web服务器可能没有激活目录列表(这可能是为您在本地服务器上提供的文件列表的原因,这可能正在运行Apache)。
您可能可以在远程服务器上激活该功能,具体取决于它正在运行的服务器软件以及如何配置。
尝试在root目录中创建(或打开).htaccess
文件(或者,如果您只想直接在该目录中列出的一个目录),并说
Options +Indexes
然后,输入要从中获取列表的目录,然后查看会发生什么。您可能仍会收到403,500错误或目录列表。在前两种情况下,您需要与您的网络提供商交谈,看看他们是否可以为您提供帮助。