【问题标题】:Can't access file via AJAX on host无法通过主机上的 AJAX 访问文件
【发布时间】:2014-01-14 09:59:16
【问题描述】:

我有一个通过 AJAX 调用 php 文件 ('live_search.php') 的搜索功能。到目前为止一切顺利。

在同一目录中有一个 htaccess 文件:

<FilesMatch "live_search.php">
Order Allow,Deny
Allow from xx.xx.xxx.xxx 127.0.0.1
Deny from all
</FilesMatch>

注意:xx.xx.xxx.xxx 是我的域的“IP”地址(我不想发布实际的 IP 地址)。

当我使用 MAMP(或 XAMPP)时,它可以在我的本地机器上运行。但在我的主机(在线)上,AJAX 无法访问该文件(“403 禁止”)。

如何通过 AJAX 访问主机上的文件?

【问题讨论】:

  • 为什么要通过 ajax 访问该文件?
  • 因为它是一种实时提供结果的搜索功能(就像 Google 的搜索一样)。
  • 查看它是基于请求/响应的应用程序。您可以通过调用 ajax 并找到所有符合条件的文件名来实现这一点,并通过 ajax 将这些名称发送回作为响应并将它们显示给用户实时搜索。基于请求/响应的应用程序不同于基于桌面的应用程序。

标签: ajax .htaccess localhost mamp http-status-code-403


【解决方案1】:

它可以在您的本地计算机上运行,​​因为您有127.0.0.1,这意味着如果请求来自 127.0.0.1 IP(例如,您正在从本地计算机访问它)然后允许该请求.如果您在主机上使用该 htaccess 文件并尝试访问该页面,它将是您的外部 IP,不在允许列表中,因此您会得到 403。

如果您使用这样的服务:http://www.whatismyip.com/ 他们给您的 IP 地址将用于确定您是否可以访问 live_search.php 文件。如果该页面上的 IP 不在允许列表中,您将获得 403。任何尝试访问 IP 不在您的允许列表中的 live_search.php 的人都会获得 403 结果。拥有服务器的 IP 绝对没有任何作用,除非有人在服务器上打开了浏览器并正在浏览进行 AJAX 调用的页面。

【讨论】:

  • 所以最好允许所有人访问?
  • @drpelz 如果您想允许任何人从 AJAX 访问搜索,可以。不知道您通过拒绝所有人的访问来达到什么目的。
  • 谢谢。:) 我只是出于安全原因询问。有些人声称您应该不惜一切代价避免允许任何人访问。但就我而言,我认为我别无选择。我编辑了我的 htaccess 文件,现在它工作正常。
猜你喜欢
  • 1970-01-01
  • 2014-08-04
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
相关资源
最近更新 更多