nginx CORS 跨域共享配置失败的时候会怎样?很多朋友对nginx CORS 跨域共享配置不是很了解,今天我们来说说nginx CORS 跨域共享配置怎么操作,成功和失败时的反应是怎样的?
# 可以设置通配符*,允许被所有域使用 add_header 'Access-Control-Allow-Origin' '*'; # 允许客户端携带验证信息,例如 cookie 之类的 add_header 'Access-Control-Allow-Credentials' 'true'; # 是在响应预检请求的时候使用,用来指明在实际的请求中,可以使用哪些自定义 HTTP 请求头 add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken'; # 表示允许的跨域请求的方法,在当前请求的域被允许后,还要检查当前请求的方法是否被允许 add_header 'Access-Control-Allow-Methods' 'GET,POST, OPTIONS'; # 响应报头指示哪些报头可以公开为通过列出他们的名字的响应的一部分 add_header 'Access-Control-Expose-Headers' 'X-Auth-Token'; # 表示预请求的结果的有效期是多久,单位为秒 add_header 'Access-Control-Max-Age' 1728000; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' "3600" ; add_header 'Access-Control-Allow-Origin' 'http://pm.example.com'; add_header 'Access-Control-Allow-Headers' 'DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,X-Auth-Token'; add_header 'Access-Control-Expose-Headers' 'X-Auth-Token'; return 200; }
重启Nginx
/usr/local/openresty/nginx/sbin/nginx -s reload
测试跨域请求
# 测试POST请求(成功) curl -I -X POST -H "Origin: http://example.com" https://www.aaa.top/ # 测试OPTIONS请求(成功) curl -I -X OPTIONS -H "Origin: http://example.com" https://www.aaa.top/ # 测试PUT请求(不成功) curl -I -X PUT -H "Origin: http://example.com" https://www.aaa.top/
成功时,响应头是如下所示:
不成功时,响应头如下所示:
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2018 群英 版权所有 茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号-36 粤公网安备 44090202000006号 粤工商备P091701000595