非 200 返回 CORS Error 问题排查
Posted September 22, 2021
问题表现
大家都知道如果出现CORS ERROR此类跨域问题,可以通过指定跨域的Headers来开放跨域。
大多数情况下,我们可以在nginx上来增加这些header
比如在nginx的location中增加以下控制项, 来达到swagger应用中能够跨域调试调用的结果:
但以上配置在我的环境中, 无法对某些错误的返回码生效, 具体表现就是400+,500+错误无法正常显示, 浏览器依然提示Cors Error错误。
问题排查
经过排查发现是 addheaders 配置项问题,需要addheader 第二参数增加always, 来显示的表示覆盖所有返回类型。
升级Nginx
如果您的nginx版本小于 < 1.7.5 , 是不支持 always 参数的。 所以你还需要升级下 nginx.