【发布时间】: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