Laravel API在邮递员中返回值,但在Vue JS中返回空数组

时间:2020-09-14 07:56:34

标签: javascript mysql laravel vue.js postman

我有一个内置于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调用

1 个答案:

答案 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}`
  }
})

您不需要提供AcceptContent-type标头。默认值就足够了。


使用浏览器的开发人员工具进行调试是一种好习惯。 网络标签特别适合检查HTTP请求中发送的标头和数据以及返回的响应。