【问题标题】:Axios call to laravel backend in nuxt.jsAxios 在 nuxt.js 中调用 laravel 后端
【发布时间】:2019-06-30 20:45:38
【问题描述】:

我正在尝试运行一个 laravel-nuxt 项目。我坚持使用 axios 异步调用创建对我的 laravel 后端的路由调用,以便在加载页面之前向我的 nuxt 前端提供数据。

即使我在 api.php 中定义了路由,我当前的 laravel-nuxt 设置也经常收到 404。

我将其用作项目的模板,并且我还没有更改该模板中的任何内容: https://github.com/cretueusebiu/laravel-nuxt

所以我的前端调用在这里:

async asyncData ({ $axios }) {
  if (process.server) {
    return $axios.$get('/api/data')
    .then((res) => {
      this.data = res.data;
    })
  }
}

而我的后端路由在api.php中定义如下:

Route::get('/data', 'HomeController@index');

它总是给我一个 404,我应该注意什么遗漏了吗?

【问题讨论】:

  • 你安装了 Laravel Telescope 吗?如果是,那么您可以看到请求调用的路径。
  • 不,我没有,我试试看
  • @Benny 我已经按照你提到的 github 结构,是所有路由都不起作用还是只有这条路由。
  • 因为您没有更改结构中的任何内容。我建议您按照自述文件以及我从那里找到的内容。 本项目使用了router-module,所以需要在client/router.js中手动添加路由

标签: php laravel nuxt.js


【解决方案1】:

根据你提到的 Github 项目中的自述文件,你必须手动将你的路由添加到

client/router.js

阅读Notes下的这一行并遵循结构,您将能够避免这种情况。

这个项目使用路由模块,所以你必须添加路由 手动在 client/router.js 中。

希望这会有所帮助。

【讨论】:

  • 是的,我已经看到并尝试使用路由器模块,但是如何定义获取资源而不是页面?我在这里定义了这个来访问我的主页:{ path: '/', name: 'Home', component: Home },现在我想将数据拉到那个组件但是这里不起作用:{ path: '/api/data', 名称: '', 组件: null },
  • 你在同一个项目中同时拥有前端和后端?
  • 如果是这样,请在 web.php 中声明您在 api.php 中声明的路由,并从 api.php 中删除该路由。您可能必须在 axios 调用中更改这条路线,将 /api/data 更改为 /data,并记得恢复任何其他更改。我认为这应该有效。我在同一个项目中使用过 vue 和 laravel,这种方法对我有用。
  • 这正是重点,我已经在我当前的项目中使用了 vue 和 laravel,它可以很好地在 web.php 中定义路由(如你所描述的),但现在使用这个 nuxt.js 和 vue- router 项目的构造似乎完全不同,或者我根本不明白如何通过这个 nuxt 项目到达 laravel ......,对我来说,vue-router 似乎并不是要调用 laravel 后端,所以我该怎么做到达 laravel 后端?
  • 哦,@Benny 那么如何在 github 存储库中报告问题,那么您肯定会得到帮助来解决这个问题。去上面的repo发issue,我觉得repo的贡献者可能有一个很好的解决方案。
猜你喜欢
  • 2021-10-18
  • 2020-01-16
  • 2020-05-19
  • 1970-01-01
  • 2021-01-24
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
相关资源
最近更新 更多