【问题标题】:Axios status is 449 despite response being 200尽管响应为 200,但 Axios 状态为 449
【发布时间】:2022-01-22 21:56:55
【问题描述】:

我有一个端点/sales/internalorders/5,当我直接在浏览器/curl/等中打开它时,它会返回200。它以application/json 正确返回。

端点由 Laravel 提供,它将来自控制器的数据提供为:

return response()->json(['data' => $return], 200);

我在我的 Vue 组件的 mounted() 挂钩中调用它:

axios.get('admin/sales/internalorders/'+this.$route.params.id)
    .then((response) => {console.log(response)})
    .catch(error=>{console.log(error)})

虽然response.request.status 是200,但response.status 正在返回449 并且response.data 未设置:

已编辑说明数据正在由 Laravel 准备

【问题讨论】:

  • 您将不得不向我们提供有关所有这一切的服务器端组件的更多信息。 Vue/Axios 没有设置 449 响应,你的 API/服务器是。
  • 谢谢@ceejayoz - 我已经编辑表明它是由 Laravel 返回的。如果是服务器端的问题,直接打开端点给200是不是很奇怪?
  • 我从来没有让 Laravel 返回没有自定义代码的 449; responseText 中的“不幸的是我们找不到...”看起来您正在构建某种自定义错误处理。
  • 这是端点返回的数据,而不是响应对象属性。端点获取内部 url 并将响应代理到网络。
  • @ceejayoz 你在正确的轨道上 - 我们应该使用响应宏而不是 response()->json() 并且 Axios 已被覆盖!

标签: vue.js axios http-status-code-449


【解决方案1】:

这里的问题是 Axios 已被覆盖并且有一个我们应该使用的自定义 Laravel 响应宏。

这显然是为了在整个应用程序中标准化错误消息?

感谢@ceejayoz,他走在了正确的轨道上!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2015-12-05
    • 2020-09-26
    相关资源
    最近更新 更多