Azure API 管理不会在 4xx 上发送 CORS 标头



在我的Azure API管理中,我为整个API定义了CORS策略。使用 OPTIONS 命令一切正常,并且每个成功的请求和 500 个响应都会返回允许的来源。

出于某种奇怪的原因,当 API 返回 401 或 403 时,允许的源标头不会与响应一起发回。我从这里的前端团队那里了解到,这会导致麻烦,因为浏览器和/或 angular 无法处理 XHR 响应,因为它不知道是否允许......

有谁知道为什么 API 管理会这样运行以及我如何防止这种情况?

非常感谢!

彼得

我对规范的理解是,如果预检请求返回 2XX 响应以外的任何内容,则预检请求将失败并显示"网络错误"。 没有迹象表明响应中应包含其他与 CORS 相关的标头。

考虑以下情况:有人对不存在的资源发出预检请求,并且响应为 404。 期望服务器为不存在的资源返回 CORS 标头似乎是不合理的。

可能值得与 Angular 团队核实一下,以了解他们为什么要检查具有非 2XX 响应的源标头。 或者,如果您能在规范中找到应该返回哪些标头的位置,我很乐意将这些信息传达给团队。

最新更新