这是我简单的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;时,它会打开一个弹出窗口并将所有图像附加到提供的目录
答案 0 :(得分:1)
您的Web服务器可能没有激活directory listings(这可能是您在本地服务器上提供文件列表的原因,可能正在运行Apache)。
您可以在远程服务器上激活它,具体取决于它运行的服务器软件及其配置方式。
尝试在根目录中创建(或打开).htaccess
文件(或者,如果它只是一个您想要列出的目录,直接在该目录中),并让它说出来
Options +Indexes
然后,输入要从中获取列表的目录,并查看会发生什么。您可能仍然会收到403,500错误或目录列表。在前两种情况下,您需要与您的网络提供商联系,看看他们是否可以为您提供帮助。