Как исправить запрос $ http GET - PullRequest
0 голосов
/ 12 апреля 2019

Невозможно получить конечную точку, несмотря на передачу параметра

Попытка передать идентификатор в конечную точку для запроса 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 голосов
/ 13 апреля 2019

Спасибо @nevada_Scout: Я изменил ваше предложение, чтобы работать так:

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

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

Проблема решена.

0 голосов
/ 12 апреля 2019

Вы используете свойство params в $http, которое предназначено для добавления параметров строки запроса к URL-адресу (например,? Vid_id = 123).

Вместо этого вам нужно динамически установить URL-адресчто вы звоните, что-то вроде этого:

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')
});

Если это не сработает, попробуйте заставить ваш сервер отображать некоторый текст на конечной точке вместо того, чтобы просто console.log():

server.js

app.get('/thread/:vid_id', function(req,res){
  res.send("test");

  console.log(req.params.vid_id)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...