我有一个内置于laravel中的小型Api,该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调用
答案 0 :(得分:0)
假设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
标头。默认值就足够了。
使用浏览器的开发人员工具进行调试是一种好习惯。 网络标签特别适合检查HTTP请求中发送的标头和数据以及返回的响应。