我有一个 json 文件包含我通过 javascript 访问的数据。在 mac 上的虚拟 MAMP 服务器上它可以工作,但是在我的在线服务器上,当我加载 HTML 文件时,我无法从 javascript 访问 json 文件。我得到 403 no permission for access 错误。为什么?
user494461
问问题
7399 次
3 回答
1
如果您的生产服务器是基于 Linux 的,那么请考虑以下几点:
请检查您的文件所在的目录。那里必须有一个 .htaccess 文件,其中包含有关目录访问的设置。如果是这种情况,您必须将 json 文件移出该目录,或者禁用相关的 .htaccess 设置。
此外,在某些情况下,当文件由于任何原因无法读取时,您会收到此错误:
一种。文件系统错误 - 运行 fsck;
湾。检查文件权限,文件至少应该有
644 [rw-r--r--]
,json文件所在的目录,应该至少有755 [rwxr-xr-x]
),
于 2011-05-18T06:20:32.593 回答
1
我刚刚意识到我遇到了同样的问题,因为我的 system.webServer 有用于 ServiceStack 的处理程序来捕获所有内容:
<handlers><add path="*" name="ServiceStack.Factory" type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" /></handlers>
但我还添加了 staticContent 来提供 JSON 文件扩展名(Windows8 IIS):
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/javascript" /></staticContent>
当我删除 staticContent 时,我收到 403 错误。但是当我添加它时,ServiceStack 处理程序会覆盖并触发 500 ......也许你有类似的东西?确保您的配置设置为处理 mimetype。
于 2015-07-09T22:38:35.383 回答
1
我也有这个问题。我注意到在我的 apache2.conf 文件中有以下内容:
<Files ~ "\.(env|json|md|gitignore|gitattributes|lock)$">
Order allow,deny
Deny from all
</Files>
这就是它被阻止的原因。要允许访问,您需要json
从那里删除。
于 2021-05-05T08:39:31.440 回答