【问题标题】:Laravel + VueJS + Axios Get Request Not WorkingLaravel + VueJS + Axios 获取请求不工作
【发布时间】:2021-01-20 17:13:00
【问题描述】:

我是 Vue 和 Laravel 的新手。我想用 Axios 从数据库中获取用户。但它不起作用。 Axios 发布请求工作正常,但获取请求不起作用。请帮帮我。

谢谢。 *

UserController.php

    public function index()
    {
        
        return User::latest()->paginate(10);

    }

Api.php

Route::apiResources(['user' => 'App\Http\Controllers\API\UserController']);

Users.vue

<script>
import axios from 'axios'
    export default {
      data(){
        return{
          users : {},
          form: new Form({
            name: '',
            email:'',
            password: '',
            type: '',
            bio: '',
            photo: '',
          })
        }
      },
      methods:{
        loadUsers(){
          console.log('Load user');
          axios.get("api/user").then(({data})  => (this.users = data.data));
        },
      
        createUser(){
          this.form.post('api/user')
        }
      },
        created() {
            this.loadUsers();
        }

    }
</script>

Route List

Function successfully call but it didn't work.

Vue Debug

Network1

Network2

【问题讨论】:

  • 在您的 index 函数中尝试 dd(User::latest()-&gt;paginate(10));
  • @JitendraYadav 感谢您的回答,但没有任何变化,我没有在屏幕上看到 dd 函数答案。我认为 axios 获取请求不调用索引函数。但是我查看了路线列表,路线还可以。
  • 您将在devtoolsnetwork 部分看到输出,只需检查它是否返回您想要的数据。如果是这样,那么您可以检查前端或后端代码。
  • 我在答案中添加了两个名为 Network1 Network2 的图像。我认为请求工作正常,但返回 HTML 页面。
  • 您应该选择左侧的api/user xhr,然后选择右侧的response 选项卡

标签: laravel vue.js get axios


【解决方案1】:

我今天遇到了同样的问题,我使用 laravel 8 提供的新路由系统解决了这个问题。我把资源路由是这样的:

Route::group(
  [
      'middleware' => 'api',
      'namespace'  => 'App\Http\Controllers',
  ],
  function ($router) {
      Route::resource('user', 'API\UserController');
  }
);

【讨论】:

    【解决方案2】:

    感谢您的帮助。我发现了我的问题。我的问题在 web.php 文件中的一行。

    Old-Web.php

        Route::get('{path}', [App\Http\Controllers\HomeController::class, 'index'])->where('path','.*');
    

    New-Web.php

        Route::get('{path}', [App\Http\Controllers\HomeController::class, 'index'])->where('/path','([A-z\d-\/_.]+)?');
    

    我更改了这一行并解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2019-04-20
      • 2018-10-30
      • 2019-09-29
      • 2020-08-09
      • 1970-01-01
      • 2020-07-15
      • 2020-06-21
      • 2022-11-23
      • 2019-01-04
      相关资源
      最近更新 更多