因为需要可能会允许服务器跨域交互数据,所以要设置允许多域名跨域。
通用方法
打开 nginx.conf,在 http 里加入如下语句:
1 2 3 4 5 6 7
| http { ... add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; ... }
|
即可。只是这样的方式安全性很差,但像下面的设置方式不被浏览器允许:
1 2 3 4 5 6 7 8
| http { ... add_header Access-Control-Allow-Origin domain1; add_header Access-Control-Allow-Origin domain2; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; ... }
|
浏览器只允许一个 Access-Control-Allow-Origin
字段。
解决方法
将 add_header Access-Control-Allow-Origin
语句放置在如下位置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| http { ... add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; ... server { ... location ~ \.php($|/) { ... if ($http_origin ~* "^domain1$" ) { add_header Access-Control-Allow-Origin $http_origin; } if ($http_origin ~* "^domain2$" ) { add_header Access-Control-Allow-Origin $http_origin; } ... } ... } }
|
完。
参考文档