【问题标题】:Access-Control-Allow-Origin: 500 Internal Error访问控制允许来源:500 内部错误
【发布时间】:2013-08-07 18:57:30
【问题描述】:

所以我试图让siteA 对siteB 上的一些内容进行jquery .load。在这样做时,我得到了 Access-Control-Allow-Origin 错误。所以在siteB 上,我放置了一个.htaccess 文件,它应该允许siteA 能够从中获取内容。我遇到了一些麻烦。我知道 .htaccess 文件正在被访问,因为当页面尝试加载并且我在 .htaccess 文件中有内容时它收到 500 内部错误。

在我尝试过的 .htaccess 文件中: 访问控制允许来源:* 和: 访问控制允许来源:“*”

但两者都给出 500 错误。我也试过: 访问控制允许来源:*

这不会给出 500 错误,因此它必须返回为 false。我现在不确定该怎么做。可能我的 .htaccess 文件格式错误或其他原因,但我认为这可能与未启用 mod_headers 有关。

在日志中: 无效命令“Access-Control-Allow-Origin:”,可能拼写错误或由未包含在服务器配置中的模块定义

两个站点都通过 10.8 Server.app 运行,因此它与正常的 Apache 安装有点不同,这使得它有点困难。任何帮助将不胜感激!提前致谢!

【问题讨论】:

  • 500 可能意味着您的.htaccess 不好。
  • 我认为 Access-Control-Allow-Origin 不会导致您的 500 错误。检查您的服务器错误日志以了解 500 的原因。
  • 刚刚将日志添加到原始问题中。当我注释掉 Access-Control 命令时,该站点会加载,当它未注释时,它会出错。该行是 .htaccess 中唯一的行
  • "Invalid command Access-Control-Allow-Origin" 会告诉我你在 .htaccess 文件中有错误的语法。您可以发布包含标题行的 .htaccess 文件吗?
  • 对不起,我已经完成了第一个 .htaccess 文件。我不知道我需要一个标题。我上面的命令是 .htaccess 文件中的所有文本。我只是将其更改为“标题添加 Access-Control-Allow-Origin “*””,我认为它现在正在工作。不再看到错误。感谢史蒂文的帮助!!

标签: php apache osx-mountain-lion mod-headers


【解决方案1】:

就我而言,我从某个地方复制了代码,其中有一些空格,这就是内部服务器错误的原因。

我正在使用

header("Access-Control-Allow-Origin : *");

我们应该写

header("Access-Control-Allow-Origin:*");

我刚刚删除了 Origin、: 和 * 之间的空格

尝试编写代码而不是复制,这可能会有所帮助。

【讨论】:

  • 特别是“Access-Control-Allow-Origin”和“:”之间不应有间隙
【解决方案2】:

我刚刚遇到同样的问题,使用时出现错误 500:

Header add Access-Control-Allow-Origin "*"

这是由于缺少模块 mod_headers ,我只需要在我的服务器上运行:

sudo a2enmod headers

如发现here

但我认为您可能需要在 OSX 上手动编辑 .conf 并取消注释该行:

#LoadModule headers_module modules/mod_headers.so

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 2019-08-22
    • 2017-01-10
    • 2017-11-21
    相关资源
    最近更新 更多