【问题标题】:Azure API Management doesn't send CORS header on 4xxAzure API 管理不会在 4xx 上发送 CORS 标头
【发布时间】:2016-06-09 09:11:41
【问题描述】:

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

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

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

非常感谢!

彼得

【问题讨论】:

    标签: api azure cors azure-api-management


    【解决方案1】:

    我对@9​​87654321@ 的解读是,如果预检请求返回的不是 2XX 响应,则预检请求会失败并出现“网络错误”。没有迹象表明其他与 CORS 相关的标头应包含在响应中。

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

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

    【讨论】:

    • 我遇到了同样的问题,请务必在操作下添加“OPTIONS”。这是 CORS 预检所需要的
    猜你喜欢
    • 1970-01-01
    • 2014-11-25
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2016-08-13
    • 2018-04-23
    相关资源
    最近更新 更多