NGINX CORS ISSUE

时间:2015-04-14 22:20:53

标签: ajax iframe nginx cors

是否可以使用nginx避免 CORS 问题。我的一个应用程序运行没有netty-server,它带有使用joc.lan作为域名的播放框架,其他应用程序在php web服务器上,我已经集成在我的应用程序中,使用 iframe 加载它使用 chat.joc.lan 作为域名,该域名是 joc.lan 的子域名。

因此,当我的任何应用程序尝试访问其他应用程序的任何数据时,我在控制台上出现的错误是

  

Uncaught SecurityError:阻止具有原点的帧   “http://chat.joc.lan”访问具有原点的框架   “http://joc.lan”。协议,域和端口必须匹配。

我通过在两个应用程序上将 document.domain 设置为主域名joc.lan来解决此错误。 对于ajax请求,我使用 JSONP

我曾在某处阅读过firefox和IE不支持。

第一次是我的主要应用程序joc.lan

server {
    listen       80;
    server_name  joc.lan;

    location / {
        proxy_pass http://localhost:9000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # WebSocket support (nginx 1.4)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        }
}

我使用iframe在joc.lan内部进行的第二个。

server {
                listen  80;
                server_name chat.joc.lan;
                root /opt/apps/flyhi/chat;
                index   index.php;
                # caching for images and disable access log for images
                location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|ttf|eot)$ {
                        access_log              off;
                        expires                 360d;
                }


                 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9007

location ~ \.php {
    fastcgi_pass  127.0.0.1:9011;
    fastcgi_index index.php;
    include fastcgi_params;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    access_log off;
}


location / {
    try_files $uri $uri/ /index.php?r=$request_uri;

}

1 个答案:

答案 0 :(得分:1)

我不确定,但您可以在nginx配置文件中设置参数,以便在所有浏览器中允许使用CORS This link can be a help where there is nginx config file is given to allow CORS