Json文件在服务器上给出403错误

时间:2011-05-18 06:07:21

标签: javascript json http-status-code-403

我有一个json文件,用于通过javascript访问数据。在我的Mac上的虚拟MAMP服务器它工作,但在我的在线服务器上,当我加载HTML文件时,我无法从javascript访问json文件。我没有获得403访问错误的权限。为什么呢?

3 个答案:

答案 0 :(得分:1)

如果您的生产服务器是基于Linux的,请考虑以下事项:

  1. 请检查您的文件所在的目录。那里必须有一个.htaccess文件,其中包含有关目录访问的设置。如果是这种情况,您必须将json文件移出该目录,或者禁用相关的.htaccess设置。

  2. 此外,在某些情况下,当文件因任何原因无法读取时会出现此错误:

    一个。文件系统错误 - 运行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