【问题标题】:Permission for ajax Calls to a folder contains .htaccess对文件夹的 ajax 调用权限包含 .htaccess
【发布时间】:2015-12-08 08:35:34
【问题描述】:

我的根目录上有一个名为 chatlogs 的文件夹(路径:root/chatlogs) chatlogs 文件夹中的 .htaccess 文件拒绝从 url 到聊天日志内容的任何请求。 现在我想允许 ajax 调用这个文件夹。 (想象一下在 chatlogs 文件夹中有一些名为 : log0.html , log1.html , ... 的文件)

htaccess:

Deny from all

我的 ajax 调用:

function loadLog(){     
   $.ajax( {
     url: "chatlogs/log0.html",
     cache: false,
     success: function( html ){
        $(" #chatbox ").html( html ); //Insert chat log into the #chatbox div   
              }             
     },
   });
setInterval ( loadLog, 1500 );

显然 loadlog() 函数无法访问 chatlogs 文件夹。 我怎样才能允许这个 ajax 调用进入 chatlogs 文件夹?我应该在 .htaccess 文件中添加一些行吗??? 提前致谢

【问题讨论】:

  • Ajax 调用与任何其他调用没有什么不同,除了一些很容易被欺骗的发送标头。为什么要拒​​绝内容,却允许ajax调用,实际上和allow to all一样

标签: php jquery ajax


【解决方案1】:

编辑您的 .htaccess:

SetEnvIfNoCase X-Requested-With XMLHttpRequest ajax
Order Deny,Allow
Deny from all
Allow from env=ajax

... SetEnvIfNoCase - 允许您根据 HTTP 标头、其他变量和请求信息的值有条件地设置脚本和 apache 可访问的环境变量。在我们的例子中:如果有标题“X-Requested-With”,则将设置环境变量“ajax”。 来自 env=ajax 的允许(仅允许访问具有上述标头的请求)

【讨论】:

  • 很好的解决方案,但您需要详细说明这 4 行的作用及其工作原理。
  • 第 2 行和第 3 行必须已经存在于用户的 .htaccess 中。所以,我将解释第 1 行和第 4 行
猜你喜欢
  • 1970-01-01
  • 2016-09-23
  • 2018-09-04
  • 2013-02-02
  • 2016-06-28
  • 2015-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多