无法在主机上通过AJAX访问文件

无法在主机上通过AJAX访问文件,ajax,.htaccess,localhost,mamp,http-status-code-403,Ajax,.htaccess,Localhost,Mamp,Http Status Code 403,我有一个搜索函数,可以通过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调用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访问主机上的文件?

它在您的本地机器上工作,因为您有127.0.0.1,这意味着如果请求来自127.0.0.1 IP,例如,您是从您的本地机器访问它,则允许请求。如果您在主机上使用该htaccess文件并尝试访问该页面,则该页面将是您的外部IP,不在允许列表中,因此您将获得403


如果您使用这样的服务:他们提供给您的IP地址将用于确定您是否可以访问live_search.php文件。如果该页面上的IP不在允许列表中,您将获得403。任何试图访问live_search.php的人,如果其IP不在您的允许列表中,将得到403结果。拥有服务器的IP完全不起任何作用,除非有人在服务器上打开了浏览器,正在浏览进行AJAX调用的页面。

为什么要通过AJAX访问该文件?因为它是一种搜索功能,可以像Google的搜索一样实时提供结果。请看,它是基于请求/响应的应用程序。您可以通过进行AJAX调用并查找所有用户的姓名来实现这一点符合条件的文件通过ajax将这些名称发送回响应,并作为实时搜索显示给用户。基于请求/响应的应用程序不同于基于桌面的应用程序。因此,最好允许所有人访问?@drpelz如果您想允许任何人从AJAX访问搜索,可以。我不确定你拒绝所有人访问的目的是什么。谢谢。我只是出于安全考虑才这么问的。一些人声称,你应该不惜一切代价避免允许任何人访问。但就我而言,我想我别无选择。我编辑了我的htaccess文件,现在可以正常工作了。