Laravel api在邮递员中返回值,但在Vue js中返回空数组
Posted
技术标签:
【中文标题】Laravel api在邮递员中返回值,但在Vue js中返回空数组【英文标题】:Laravel api returns value in postman but returns empty array in Vue js 【发布时间】:2020-12-31 22:25:35 【问题描述】:我有一个内置在 laravel 中的小型 Api,它应该在命中端点时返回响应。 问题是,同样的端点在邮递员中返回一些东西,但在 Vue Js 中返回空数据。 我已经为此奋斗了 48 小时,这让我发疯了,任何帮助将不胜感激。 谢谢
public function search_passport(Request $request)
$pass = DB::table('passengers')->where('passport_number',$request->input('passport_number'))->get();
if($pass->count() == 0)
return response(['message' => 'Passport number not found, please fill the form']);
return new PassengerResource($pass);
// search_passenger
以上是Api中控制器的代码
Route::post('/searchpassport', [PassengerController::class, 'search_passport']);
这是路线
this.$http.post('searchpassport', this.passport_number, headers:
'Authorization' : 'Bearer ' + this.token.access_token,
'Accept' : 'application/json',
'Content-Type' : 'application'
)
.then(res =>
console.log(res)
)
这也是我在 Vue Js 中进行的 API 调用
【问题讨论】:
什么是$http
?
【参考方案1】:
假设this.$http
是Axios 而this.passport_number
是一个字符串,那么您缺少请求有效负载的字段/属性名称,即"passport_number"
。此外,您的 Content-type
标头不正确。
试试这个
this.$http.post("/searchpassport",
passport_number: this.passport_number
,
headers:
Authorization: `Bearer $this.token.access_token`
)
您不需要提供 Accept
或 Content-type
标头。默认值就足够了。
最好使用浏览器的开发工具进行调试。 Network 选项卡尤其适合检查 HTTP 请求中发送的标头和数据以及返回的响应。
【讨论】:
Phil 非常感谢,现在正在工作,我按照您的建议将有效负载作为对象传递并删除了 Accept 和 Content-Type 标头。以上是关于Laravel api在邮递员中返回值,但在Vue js中返回空数组的主要内容,如果未能解决你的问题,请参考以下文章
API 的 Auth0 访问令牌在邮递员中有效,但在从 Vue 调用时无效
Laravel Passport 和 Angular 在 api/login 路线上给了我未经授权但在邮递员上工作正常?
获取 api post call 在 React js 中返回 403 禁止错误,但在邮递员中使用相同的 URL
API POST 请求在邮递员和 Laravel 上返回 404 NOT FOUND PAGE