我有一个json文件,用于通过javascript访问数据。在我的Mac上的虚拟MAMP服务器它工作,但在我的在线服务器上,当我加载HTML文件时,我无法从javascript访问json文件。我没有获得403访问错误的权限。为什么呢?
答案 0 :(得分:1)
如果您的生产服务器是基于Linux的,请考虑以下事项:
请检查您的文件所在的目录。那里必须有一个.htaccess文件,其中包含有关目录访问的设置。如果是这种情况,您必须将json文件移出该目录,或者禁用相关的.htaccess设置。
此外,在某些情况下,当文件因任何原因无法读取时会出现此错误:
一个。文件系统错误 - 运行fsck;
湾检查文件权限,该文件至少应为644 [rw-r--r--]
,json文件所在的目录,至少应为755 [rwxr-xr-x]
),
答案 1 :(得分: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。
答案 2 :(得分:1)
我也遇到了这个问题。 我注意到在我的 apache2.conf 文件中有以下内容:
<Files ~ "\.(env|json|md|gitignore|gitattributes|lock)$">
Order allow,deny
Deny from all
</Files>
这就是它被阻止的原因。
要允许访问,您需要从那里删除 json
。