代码之家  ›  专栏  ›  技术社区  ›  steros

允许对nginx上的Laravel路由进行跨源请求

  •  0
  • steros  · 技术社区  · 7 年前

    我想访问Laravel 5.5 API端点 https://foo.bar.com/api/v1.0/foo/bar 来自另一个地方。因此,我需要允许跨来源请求。我已经将标题添加到了nginx配置中。但是我的浏览器仍然抱怨它不存在。 这是我的nginx配置:

    server {
       listen       *:443 ssl;
    
       server_name  foo.bar.com ;
       ssl on;
    
       ssl_certificate           /etc/nginx/nxv_bhxwewp1idzm.crt;
       ssl_certificate_key       /etc/nginx/nxv_bhxwewp1idzm.key;
       ssl_session_cache         shared:SSL:10m;
       ssl_session_timeout       5m;
       ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers               "...";
       ssl_prefer_server_ciphers on;
       client_max_body_size 1m;
         index  index.html index.htm index.php;
    
       access_log            /var/log/nginx/ssl-nxv_bhxwewp1idzm.access.log;
       error_log             /var/log/nginx/ssl-nxv_bhxwewp1idzm.error.log;
    
    
       root /var/www/share/foo.bar.com;
       location ~ ^/index\.php(/|$) {
    
    
         set $path_info $fastcgi_path_info;
         root  /var/www/share/foo.bar.com/public/;
         fastcgi_index index.php;
         fastcgi_split_path_info ^(.+\.php)(/.*)$;
         try_files $uri $uri/ /index.php$is_args$args;
         include /etc/nginx/fastcgi_params;
         fastcgi_pass 127.0.0.1:9000;
         add_header 'Access-Control-Allow-Origin' '*';
    
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
       }
       location / {
    
        root  /var/www/share/foo.bar.com/public/;
        try_files $uri $uri/ /index.php$is_args$args;
        autoindex off;
        index  index.html index.php;
        add_header 'Access-Control-Allow-Origin' '*';
    
    
       }
       sendfile off;
     }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   steros    7 年前

    我已经从@digitalflower发布的链接中获取了信息。但它似乎只是增加了 Access-Control-Allow-Origin 不足以让它发挥作用。尽管我不关心访问方法等等。 所以这就让交易成功了:

    server {
       listen       *:443 ssl;
    
       server_name  foo.bar.com ;
       ssl on;
    
       ssl_certificate           /etc/nginx/nxv_bhxwewp1idzm.crt;
       ssl_certificate_key       /etc/nginx/nxv_bhxwewp1idzm.key;
       ssl_session_cache         shared:SSL:10m;
       ssl_session_timeout       5m;
       ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers               "...";
       ssl_prefer_server_ciphers on;
       client_max_body_size 1m;
         index  index.html index.htm index.php;
    
       access_log            /var/log/nginx/ssl-nxv_bhxwewp1idzm.access.log;
       error_log             /var/log/nginx/ssl-nxv_bhxwewp1idzm.error.log;
    
    
       root /var/www/share/foo.bar.com;
       location ~ ^/index\.php(/|$) {
    
    
         set $path_info $fastcgi_path_info;
         root  /var/www/share/foo.bar.com/public/;
         fastcgi_index index.php;
         fastcgi_split_path_info ^(.+\.php)(/.*)$;
         try_files $uri $uri/ /index.php$is_args$args;
         include /etc/nginx/fastcgi_params;
         fastcgi_pass 127.0.0.1:9000;
         add_header 'Access-Control-Allow-Origin' '*';
         add_header 'X-Frame-Options' 'ALLOW-FROM *';
         add_header 'Access-Control-Allow-Credentials' 'true';
         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
         add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
       }
       location / {
    
        root  /var/www/share/foo.bar.com/public/;
        try_files $uri $uri/ /index.php$is_args$args;
        autoindex off;
        index  index.html index.php;
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'X-Frame-Options' 'ALLOW-FROM *';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    
    
       }
       sendfile off;
     }