如何解决$ http GET请求

时间:2019-04-12 06:57:21

标签: angularjs

尽管传递了参数也无法获取终点

尝试将ID传递给GET请求的终点

controller.js

    var vid = $routeParams.vidId  //get the video id
        console.log(vid) //works
        $http({
         method:'GET',
         url:'/thread/',
         params:{vid_id:vid},

        }).then(function(success){
          console.log('success')
        }, function(error){
          console.log('error')
        })

server.js

app.get('/thread/:vid_id', function(req,res){
  console.log(req.params.vid_id)
})

我希望在服务器控制台上看到vid_id,但是却收到404错误。

angular.js:13531 GET http://localhost:5000/thread/?vid_id=5cb01f6b03fb0b3e6c2abf7f 404 (Not Found)

2 个答案:

答案 0 :(得分:0)

您正在使用params的{​​{1}}属性,该属性用于将查询字符串参数附加到URL(例如?vid_id = 123)。

您需要动态设置要调用的URL,如下所示:

$http

如果这不起作用,请尝试使服务器在端点上显示一些文本,而不是仅执行var vid = $routeParams.vidId //get the video id console.log(vid) //works $http({ method:'GET', url:'/thread/' + vid // <==== HERE }) .then(function(success){ console.log('success') }, function(error){ console.log('error') });

server.js

console.log()

答案 1 :(得分:0)

谢谢@nevada_Scout: 我修改了您的建议,使其工作如下:

$http({
     method:'GET',
     url:'/thread/' +JSON.stringify(vid),

    }).then(function(success){
      console.log(success)
    }, function(err){
      console.log(err)
    })

问题解决了。