【问题标题】:Get response headers from failed (CORS) Google Endpoint response从失败的 (CORS) Google Endpoint 响应中获取响应标头
【发布时间】:2021-03-10 12:02:57
【问题描述】:

我正在尝试从使用 Axios 对 Google Endpoints 的失败调用中获取响应标头详细信息。由于超出速率限制(状态代码 429),Google Endpoints 出现异常,我正在尝试从客户端访问该状态代码。

当我打开 devtools 时,我可以看到状态标头存在,但经过多次尝试后,我无法使用 javascript(使用 Axios)访问此标头。如果我记录错误,则根本没有响应标头。

我的问题与此类似:Axios get access to response header fields 但看起来他们的调用成功了,因为他们将响应记录在“then”块中。但是由于 CORS 导致我的失败,并且在 Axios 中捕获的错误中根本没有“response.headers”对象。

当我在控制台中解析和记录 Axios 错误响应时,我只看到请求的配置,根本找不到响应标头:

我还向 Google Endpoints 添加了“Access-Control-Expose-Headers:status, server”,以根据上述帖子的接受答案公开“status”和“server”标头,但没有任何改变。

编辑:我还尝试使用 Axios 拦截器从服务器获取原始响应,它是未定义的。 Google Endpoints 完全没有响应。我很困惑为什么我可以在开发工具中看到状态,但无法在客户端应用程序中访问它。

【问题讨论】:

    标签: javascript rest axios cors


    【解决方案1】:

    Status 不是一个常规的标题,它是它自己的东西。如果你有某种响应对象,它可能在response.status

    【讨论】:

    • 我确实有一个来自 axios 的响应对象,我在上面记录了它,其中根本没有“状态”。只有 config(这是 axios 的请求配置),一个简单的消息、名称和错误堆栈
    • 在上面的评论中添加:我尝试在 axios 中使用拦截器来获取实际的网络响应,但响应完全未定义。所以我根本无法获得任何状态或消息
    猜你喜欢
    • 2018-10-15
    • 2019-09-08
    • 2017-11-06
    • 1970-01-01
    • 2020-08-10
    • 2017-07-28
    • 2019-03-04
    • 1970-01-01
    • 2013-05-28
    相关资源
    最近更新 更多