返回

Nginx让你用最简单的配置实现跨域资源共享

见解分享

什么是CORS?
CORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源调用的限制。

如何通过Nginx实现CORS?

以下是一些常用的Nginx CORS配置示例:

  1. 允许所有来源的请求:

     location / {
         add_header 'Access-Control-Allow-Origin' '*';
     }
    
  2. 允许特定来源的请求:

     location / {
         add_header 'Access-Control-Allow-Origin' 'https://example.com';
     }
    
  3. 允许特定来源的请求,并指定允许的请求方法:

     location / {
         add_header 'Access-Control-Allow-Origin' 'https://example.com';
         add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE';
     }
    
  4. 允许特定来源的请求,并指定允许的请求头:

     location / {
         add_header 'Access-Control-Allow-Origin' 'https://example.com';
         add_header 'Access-Control-Allow-Headers' 'X-Requested-With, Content-Type, Authorization';
     }
    
  5. 允许特定来源的请求,并指定允许的响应头:

     location / {
         add_header 'Access-Control-Allow-Origin' 'https://example.com';
         add_header 'Access-Control-Expose-Headers' 'X-My-Custom-Header';
     }
    
  6. 允许特定来源的请求,并指定预检请求的有效期:

     location / {
         add_header 'Access-Control-Allow-Origin' 'https://example.com';
         add_header 'Access-Control-Max-Age' '3600';
     }
    

注意:

在实际配置中,您需要根据自己的需要来调整这些配置。例如,如果您需要允许所有来源的请求,那么可以使用第一个示例。如果您需要允许特定来源的请求,那么可以使用第二个示例。以此类推。

结语

通过本文,您应该已经学会了如何在Nginx中通过CORS实现跨域资源共享。如果您在实际使用中遇到任何问题,欢迎随时提出。