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

Posted

技术标签:

【中文标题】Json 文件在服务器上给出 403 错误【英文标题】:Json file gives 403 error on server 【发布时间】:2011-08-27 18:53:23 【问题描述】:

我有一个包含我通过 javascript 访问的数据的 json 文件。在 mac 上的虚拟 MAMP 服务器上它可以工作,但是在我的在线服务器上,当我加载 html 文件时,我无法从 javascript 访问 json 文件。我得到 403 no permission for access 错误。为什么?

【问题讨论】:

查看文件权限和/或所有权、网络服务器的配置、仔细检查您的文件名等...可能是很多事情。 因为你有权限问题?检查您的网络服务器配置并确保它与您的本地主机 wrt 访问权限相同。 文件看起来是可读的。这就是 403 的意思。检查文件是否具有正确的权限,并且它所在的文件夹是否可以访问。 【参考方案1】:

如果您的生产服务器是基于 Linux 的,那么请考虑以下几点:

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

    此外,在某些情况下,当文件因任何原因无法读取时,您会收到此错误:

    一个。文件系统错误 - 运行 fsck;

    b.检查文件权限,文件至少要有644 [rw-r--r--],json文件所在的目录,至少要有755 [rwxr-xr-x]),

【讨论】:

文件权限如你所说...我似乎无法找到 .htaccess 文件..apache 控制这个吗?有问题吗? 我知道它有效..因为正如我所说,相同的代码适用于我的本地 mamp/wamp 服务器,但不适用于我的真实 Web 服务器...有趣的是我的 json 文件移动到目录中这也有我的 index.html ......现在它可以工作了......但我仍然无法通过 data/data.json 访问它..虽然我可以访问 css/style.css 和 js/map.css 中的 css 或 js 文件同样的方式 数据/目录是在您上传文件之前在服务器上创建的吗?如果不是,则会出现 url 或文件路径错误,您可以检查前导斜杠、小写/大写文件名和扩展名。 Linux 文件系统区分大小写。【参考方案2】:

我刚刚意识到我遇到了同样的问题,因为我的 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。

【讨论】:

【参考方案3】:

我也有这个问题。 我注意到在我的 apache2.conf 文件中有以下内容:

<Files ~ "\.(env|json|md|gitignore|gitattributes|lock)$">
    Order allow,deny
    Deny from all
</Files>

这就是它被阻止的原因。 要允许访问,您需要从那里删除 json

【讨论】:

以上是关于Json 文件在服务器上给出 403 错误的主要内容,如果未能解决你的问题,请参考以下文章

NEXUS npm install 给出 403 错误

带有授权标头的Web API 2调用给出了403错误

使用 Python 下载 zip 文件给出 HTTP 403

尝试将文件(图像)上传到服务器时出现错误 403

为啥基本身份验证总是使用 restTemplate 给出错误 403?

Spring boot api给出403禁止错误