【问题标题】:Axios response data is always set as empty string in laravelaxios 响应数据在 laravel 中总是设置为空字符串
【发布时间】:2019-04-17 20:04:55
【问题描述】:

我在使用 axios 时遇到了一些以前从未遇到过的奇怪问题,从 laravel 后端到 vue 前端的任何返回响应都是空的..

return response()->json(['message' => 'Success!']);

这一行是在帖子被编辑之后...

我也试过了:

return response(['message' => 'Success!']);
return ['message' => 'Success!'];

当我console.log()回复:

axios.post(url).then((response)=>{
    console.log(response);
});

我得到关于响应和数据的所有内容作为空字符串,我在 Laravel 5.7 中遇到了这个问题,而在 5.6 中工作得很好......

【问题讨论】:

  • 你以前用邮递员试过你的端点吗?
  • 不,因为我使用的是基于会话的验证。
  • 您是否在请求中设置了“X-CSRF-Token”?我认为存在请求验证问题,并且您得到了重定向(如果令牌正常,请尝试在不受保护的路由上发出请求,看看是否有效)。

标签: laravel axios laravel-5.7 laravel-response


【解决方案1】:

在你的刀片中确保你的头部有csrf_token

xyz.blade.php

<head>
    <meta name="csrf-token" content="{{ csrf_token() }}">
</head

来自 Vue 或 React: 确保您的方法正确获取、发布、删除、放入路由文件(web.php 或任何东西)

axios.post('/some/url', {
           post_param_a : 1, 
            post_param_b : 2
         }).then(response => {
              //your value should be in response.data object
              console.log(response.data.message)
            })
            .catch(function (error) {
                console.log(error);
            });

内部控制器:

public function methodName(){
    return response()->json(['message' => 'Success!']);
}

或者你也可以调试 右键单击浏览器>>检查>>网络选项卡>>参考屏幕截图。

您也可以dd($response)您的回复并在inspector in response部分查看

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2021-12-13
    • 2020-10-28
    • 1970-01-01
    • 2021-08-07
    • 2020-02-27
    相关资源
    最近更新 更多