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

时间:2018-11-15 21:45:56

标签: javascript typescript vue.js vuejs2 axios

我在服务器端具有此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 个答案:

答案 0 :(得分:1)

通过将idthis.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