Не могу понять, почему ссылка не найдена в угловых - PullRequest
0 голосов
/ 27 апреля 2018

Я отправляю запрос

$http.get('/loadpage?category='+$scope.selectedCategory+'&page='+$scope.selectedPage).then(function(response){

    }).catch(function(){
        console.log("Error caught!");
    });

В моем файле router.js,

У меня есть

router.get('/loadpage?category=xx&page=yy', function(req, res) {

res.send("Is this working");
});

Я не уверен, почему мой сервер показывает следующую ошибку.

angular.js: 12587 GET http://localhost:3000/loadpage?category=1&page=1 404 (не найдено)

Потому что я пытался отправить запрос на другой URL

router.get('/runthis/category=:xx',function(req, res){
var p = req.params.xx;

res.send(p);
});

от

function runthis (){
    $http.get('runthis/category=smackthat').then(function(response){
        console.log(response.data);
    }).catch(function(){
        console.log("Error caught!");
    });
}

И это прекрасно работает.

Может кто-нибудь помочь. Спасибо

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Почему бы вам не сделать ваш URL-адрес немного проще, например:

router.get('/loadpage/:category/:page', function(req, res) {
   res.send("Is this working");
});

Делает ваши параметры URL более семантическими. и назовите это как:

$http.get('/loadpage/'+$scope.selectedCategory+'/'+$scope.selectedPage).then(function(response){

}).catch(function(){
    console.log("Error caught!");
});

Кроме того, когда вы определили свой URL без : в router.get('/loadpage?category=xx&page=yy'... Маршрутизатор ищет точное соответствие для вызываемого URL, в вашем случае вы передаете переменные, и если эти 2 не имеют xx и yy в них соответственно работает как положено и выбрасывает 404

0 голосов
/ 27 апреля 2018

Вы работаете со строкой запроса (?foo=bar части URL-адресов) в выражении. Строка запроса анализируется в req.query, например, req.query.foo === 'bar', поэтому маршрут должен быть просто /loadpage, и вы должны получать данные из req.query

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...