【问题标题】:How come in Postman my post request works but not in the browser even though I'm doing the same?即使我在做同样的事情,为什么我的 post 请求在 Postman 中有效,但在浏览器中却无效?
【发布时间】:2020-07-17 01:51:52
【问题描述】:

在 Postman 中,我可以使用我的端点成功地进行身份验证(我正在使用 Passport)。然后我可以打开一个新选项卡并使用不同的端点发布到我的 SQL 数据库 - 文件名(用户上传的)、电子邮件和 user_id。

在浏览器中,我可以成功验证。但是,当我尝试上传文件并发送用户的不记名令牌(以检测哪个用户正在上传)时,我收到一个 500 错误,上面写着:

ErrorException: Trying to get property 'id' of non-object in file.  

我尝试在我的发布请求中发送电子邮件和 ID,但我收到了同样的错误。我做错了什么?

后端控制器代码:

public function store(Request $request) {
    $filePath = $request->file('file')->getClientOriginalName();
    $id = $request->user()->id;
    $email = $request->user()->email;
    
    $data = [
        'file_path' => $filePath,
        'user_id' => $id,
        'email' => $email
    ];

    DB::table('my db.photos')->insert($data);
    echo "Record inserted successfully.<br/>";
}

前端代码:

fileUpload(file) {
    const formData = new FormData()

    console.log(this.state.access_token);

    formData.append('file', file);
    formData.set('access_token', "Bearer " + this.state.access_token);
    // formData.set('email', this.getEmail());
    // formData.set('user_id', this.getId());

    fetch('http://127.0.0.1:8000/api/auth/myendpont/wall-of-fame', {
        method: 'POST',
        body: formData
    })
        .then(response => console.log(response))
        .catch(error => { console.error(error) });
}

【问题讨论】:

  • 请添加错误日志,这很重要。
  • @rian 我发布了我在后端日志中看到的内容
  • 是的,$id = $request-&gt;user()-&gt;id; 可能是来自这里的错误 com,无法从请求中获取经过身份验证的用户。在fromdataheader 中检查您的access_token
  • @rian 奇怪的是,当我运行dd($id, $email); 时,会出现正确的信息。我不确定为什么它在浏览器中不起作用。
  • 您能用来自laravel.log 的错误消息更新您的答案吗?这应该告诉你发生在哪一行错误......另外,你是如何在 laravel 中设置 jwt 令牌的?您是否遵循 laravel 文档? In the docs 它说要设置以下 headersAcceptAuthorization,但我在您的 JS 逻辑中没有看到...

标签: javascript php reactjs laravel


【解决方案1】:

可能是这样的?

formData.append('access_token', "Bearer " + this.state.access_token);

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 2020-07-31
    • 2021-11-12
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多