AJAX从一个域请求另一个域的地址会有跨域的问题,需要在nginx的配置上添加add_header 如下:
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name b.com; location /{ add_header 'Access-Control-Allow-Origin' 'http://a.com'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET'; } } |
第一条add_header:授权从a.com的请求
第二条add_header:当该标志为真时,响应于该请求是否可以被暴露
第三条add_header:指定请求的方法,可以是GET,POST,PUT,DELETE,HEAD
如果想允许来自任何域的请求,可以这样:
1 2 3 4 5 6 7 |
server { listen 80; server_name b.com; location /{ Access-Control-Allow-Origin: * } } |
如果想配置2-3个域设置为信任,可以这样:
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name b.com; location /{ if ( $http_referer ~* (a.com|b.com|c.com) ) { Access-Control-Allow-Origin: * } } } |