带有vue 2 js的laravel api未返回数据-可能';本地主机:8000';(或';127.0.0.1:8000';)是问题吗?

带有vue 2 js的laravel api未返回数据-可能';本地主机:8000';(或';127.0.0.1:8000';)是问题吗?,laravel,api,vue.js,Laravel,Api,Vue.js,我使用回购协议,因此我对代码的可靠性有100%的信心。我可以通过LaravelAPI端点通过非常简单的Vue客户端发布,也可以通过Postman发布。通过Postman,我可以检索表数据数组,但在客户端应用程序中并非如此。邮递员: localhost:8000/api/quotes 很好用 在vue 2 js客户端应用程序中: methods: { onGetQuotes() { axios.get('http://localhost:8000/api/

我使用回购协议,因此我对代码的可靠性有100%的信心。我可以通过LaravelAPI端点通过非常简单的Vue客户端发布,也可以通过Postman发布。通过Postman,我可以检索表数据数组,但在客户端应用程序中并非如此。邮递员:

localhost:8000/api/quotes
很好用

在vue 2 js客户端应用程序中:

methods: {
        onGetQuotes() {
            axios.get('http://localhost:8000/api/quotes')
                .then(
                    response => {
                        this.quotes =  (response.data.quotes);
                    }     
                )
                .catch(
                    error => console.log(error)
                );
        }
不返回任何内容。将响应返回到Console.log不会返回任何内容。Network/XHR选项卡显示了表数据行,但我不确定这意味着什么

我确信这段代码适用于其他具有唯一api端点的代码,我假设这些端点可能不使用localhost或'127:0.0.1:1080'

编辑:响应更多信息的请求

public function getQuotes()
{
    $quotes = Quote::all();
    $response = [$quotes];
    return response()->json($response, 200);
}
及有关路线:

Route::get('/quotes', [
    'uses' => 'QuoteController@getQuotes'
]);
只是确认一下:我使用的是经过验证的github repo代码,其中唯一的更改是我的api端点地址,如本问题正文第一行所述。请注意,Laravel后端也源自Max的fine教程中的相关回购。运行的代码可以在

所以我真的不认为这是一个编码错误-但这是一个配置错误,因为我使用本地主机


编辑:这是laravel控制器中的一个编码错误,如下所示

如果您没有为控制器中的
$quotes
提供密钥,但正在vue文件(
response.data.quotes
)中查找,则代码无法工作

[$quotes]
本质上是
[0=>$quotes]
所以当json响应通过它时,应该是
0:[…]
而不是
quotes:[…]

要使其正常工作,您只需更改:

$response = [$quotes];
致:


此外,仅供参考,您不需要在
response->json()
中提供
200
,因为这是默认值,您只需返回一个数组,然后
Laravel
自动返回正确的json响应,例如:

public function getQuotes()
{
    $quotes = \App\Models\Artist::all();

    return compact('quotes'); //<-- This is just another way of writting ['quotes' => $quotes]
}
公共函数getQuotes()
{
$quotes=\App\Models\Artist::all();
返回压缩('quotes');//$quotes]
}
显然,如果你不想,你不必这么做


希望这有帮助

尝试ping本地主机并让我们知道您得到了什么。如果添加console.log(response.data),您会得到什么?另外,是否能够显示此路由的控制器方法?@prosti是的,无论我是否运行php artisan Service(laravel的内置服务器),我都可以ping端口。我可能错了,但这不意味着api是可访问的,因为我可以通过邮递员发布和获取吗?我可以通过vue应用程序创建(发布)到laravel api?我唯一无法让vue应用程序返回数据数组的地方是。@Ross Wilson-bin在那里,这样做了-也没有使用console.log返回数据数组对象(即使在chrome开发者工具选项卡-Network/XHR上-它确实显示返回的数据)(我不知道这个标签的任何内容,也不知道这个标签的意义。如果laravel控制器不工作,邮递员不会返回数据,但这里是:Route::get('/quotes',['使用'=>'QuoteController@getQuotes' ]);我只是想问你是否可以展示一下,因为我认为我可以帮助你调试它。不过不用担心。这就是答案!项目中唯一不在github中的部分,也是唯一我没有检查的部分。典型的用户错误-回去查看视频部分,其中涉及到了这一点,这是我的疏忽。@Ross Wilson我想我从不费心彻底检查控制器是因为邮递员返回了完整的数组。我不太聪明,弄不清楚那个。
public function getQuotes()
{
    $quotes = \App\Models\Artist::all();

    return compact('quotes'); //<-- This is just another way of writting ['quotes' => $quotes]
}