【问题标题】:Setting Access-Control-Allow-Origin header on source server在源服务器上设置 Access-Control-Allow-Origin 标头
【发布时间】:2014-05-05 02:35:36
【问题描述】:

我正在使用$.get 解析 jQuery 中的 RSS 提要,代码类似于:

$.get(rssurl, function(data) {
    var $xml = $(data);
    $xml.find("item").each(function() {
        var $this = $(this),
            item = {
                title: $this.find("title").text(),
                link: $this.find("link").text(),
                description: $this.find("description").text(),
                pubDate: $this.find("pubDate").text(),
                author: $this.find("author").text()
        }
        //Do something with item here...
    });
});

但是,由于单一来源政策,我收到以下错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。

幸运的是,我可以访问源服务器,因为这是我自己动态创建的 RSS 提要。

我的问题是:如何在源服务器上设置 Access-Control-Allow-Origin 标头?

编辑

我正在使用 PHP,我认为我的网络服务器是 Apache。

【问题讨论】:

  • 您使用什么服务器端语言?你用的是什么网络服务器?
  • 我正在使用 PHP,我认为网络服务器是 Apache - 我的主机是 1&1。
  • 您有两个选择。添加一个设置标题的 .htaccess 文件,或者让 php 返回带有标题的文件。这里有很多例子:enable-cors.org/server.html

标签: php jquery apache rss cors


【解决方案1】:

在 php 中正确设置:

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

【讨论】:

  • 这对我很有用。在单个 php 文件中进行访问比将其添加到站点的 .htaccess 中是否有任何安全优势?
【解决方案2】:

对于 apache,您只需将其添加到与您尝试远程访问的文件位于同一目录中的 .htaccess 文件中。

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

http://enable-cors.org/server_apache.html

【讨论】:

  • 原来 PHP 选项在这种情况下对我有用 (header("Access-Control-Allow-Origin: *");),但感谢您的回答。
猜你喜欢
  • 2016-07-21
  • 2020-10-18
  • 2018-01-24
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多