使用 Axios 和 VueJS 通过 id 获取数据

Posted

技术标签:

【中文标题】使用 Axios 和 VueJS 通过 id 获取数据【英文标题】:Get data by id using Axios and VueJS 【发布时间】:2019-04-19 01:55:57 【问题描述】:

我的服务器端有这个 get 函数,我想通过将 ID 作为参数来获取数据库中的特定条目。在我的 VueJS 应用程序中,我编写了一个 Axios get-call,但它没有给我任何数据。它只说

“无法获取...”。

我知道我为函数提供的 ID 是正确的,所以这不是问题。

客户端

loadData() 
     axios.get('http://localhost:8080/route', 
        params: 
            id: this.selectedRoute
        
     )
     .then(response => (this.chosenRoute = response.data));

服务器端

app.get('/route/:id', function(req, res) 
    const routeId = req.params.id;
    Route.findById(routeId, (err, route) => 
        res.set("Access-Control-Allow-Origin", "*");
        res.json(route);
    );
);
    enter code here

【问题讨论】:

【参考方案1】:

通过将id(即this.selectedRoute)连接到url 来尝试类似的操作:

  loadData() 
     axios.get('http://localhost:8080/route/'+ this.selectedRoute)
              .then(response => (this.chosenRoute = response.data));

在你的最后一个问题中,你有这个:

      <select name="routeSelect" v-model="selectedRoute">
          <option v-for="routes in result" v-bind:key="routes.name" v- 
           bind:value="routes.name">  routes.name  </option>
      </select>

这不起作用,因为 selectedRoute 是路线 name 不是 id 来解决你必须这样做:

          <option v-for="routes in result" v-bind:key="routes.name" v- 
           bind:value="routes.id" >...

通过将选择选项 value 绑定到 路由 id

【讨论】:

我已经将 v-bind:value 更改为 id 而不是名称,所以这不是问题。但是,您将 id 连接到 url 的第一个建议奏效了。谢谢! 不客气,通常我更喜欢将值绑定到对象,在这种情况下绑定到路由项

以上是关于使用 Axios 和 VueJS 通过 id 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在VueJS中使用v-on:change并发送参数以使用axios获取更新JSON数据

无法使用 api 从 axios 获取数据 - vue js

在Laravel护照,vueJS和Axios中未经授权获得401

Vuejs- if..else 语句中未达到第二个 axios.get

如何将变量从 axios 获取请求传递给 vuejs 中的子组件?

使用 Vuejs 和 Axios 合并对象