nginx No' Access-Control-Allow-Origin'标头出现在请求的资源上

时间:2014-11-10 08:54:27

标签: javascript nginx same-origin-policy

我发现有很多这样的问题,但我发现没有人让我解决我的问题。

jQuery.post( 'http://example.com/api_offer/get_time_left', function(data) {

    console.log('get time');

}, 'json');

我正在使用Chrome控制台:

XMLHttpRequest无法加载http://example.com/api_offer/get_time_left。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许来源“[我的本地域名]”。

在nginx网站配置中设置了这样的设置:

location ~ \.php$ {
              fastcgi_pass 127.0.0.1:9000;
              fastcgi_index index.php;
              include fastcgi_params;
              fastcgi_read_timeout 300;

              add_header Access-Control-Allow-Origin *;

              proxy_set_header Access-Control-Allow-Origin $http_origin;

        }

如果重要,我正在使用Vagrant。但是如果我尝试运行它unix服务器而不是我的localhost计算机,我会得到同样的错误。

尝试查看nginx和此站点域的错误日志,但没有发现任何有用的内容。

如果我设置*允许任何域名,它怎么能不起作用?我还能做些什么呢?

1 个答案:

答案 0 :(得分:0)

我正在编辑错误的配置部分。

有2个服务器{}块。

其中一个是ssl on,另一个没有ssl。

我正在使用ssl part进行编辑

server {
    liten 443;
    ssl on;


    ....

}

但我打电话给非ssl部分网站并没有做出反应。

唯一的问题可能是 - 我怎么能早点发现它。我在这上花了几个小时。

因此,对于可能遇到此类问题的未来访问者 - 仔细检查,确保您正在编辑正确的区块或正确的网站启用文件