Angular $http.get 没有传递参数
Angular $http.get not passing parameters
这似乎是一个简单的问题,我一定是忽略了一些小问题。
我有一个访问 Spotify API 并搜索艺术家的功能。我知道通过正常 URL returns 访问此路由会产生结果。 (例如 http://localhost:3001/search?artist=%27Linkin%20Park%27
)这里是执行此操作的代码:
router.get('/search', function(req, res, next)
{
var artist = req.param('artist');
console.log("Artist: " + artist);
smartSpot.getArtistID(artist, function(data)
{
console.log("Data: " + data);
res.json(data.id);
});
});
然后就是前端搜索艺术家的代码。这一切都是通过 angular.
完成的
angular.module('smart-spot', [])
.controller('MainCtrl', [
'$scope', '$http',
function($scope, $http)
{
$scope.createPlaylist = function()
{
var artist = $scope.artist;
console.log(artist);
window.open("/login", "Playlist Creation", 'WIDTH=400, HEIGHT=500');
return $http.get('/search?=' + $scope.artist) //this doesn't pass in the artist
.success(function(data)
{
console.log(data);
});
}
}
]);
$http.get()
没有正确传递 $scope.artist` 值。
看起来您可能在字符串连接中缺少 "artist" 查询参数。
$http.get('/search?artist=' + $scope.artist)
或者,您可以将艺术家作为查询参数传递。
function createPlaylist() {
return $http.get('/search', { params : { artist : $scope.artist } })
.then(function(response) {
return response;
}, function(error) {
return $q.reject(error);
});
}
此外,我会避免使用 .success。我相信这有利于上面的语法。第一个参数是成功函数,第二个是失败函数。
可以通过
传递参数
$http.get('/search', {
params: {
artist: $scope.artist
}
})
.success(function(data)
{
console.log(data);
});
这似乎是一个简单的问题,我一定是忽略了一些小问题。
我有一个访问 Spotify API 并搜索艺术家的功能。我知道通过正常 URL returns 访问此路由会产生结果。 (例如 http://localhost:3001/search?artist=%27Linkin%20Park%27
)这里是执行此操作的代码:
router.get('/search', function(req, res, next)
{
var artist = req.param('artist');
console.log("Artist: " + artist);
smartSpot.getArtistID(artist, function(data)
{
console.log("Data: " + data);
res.json(data.id);
});
});
然后就是前端搜索艺术家的代码。这一切都是通过 angular.
完成的angular.module('smart-spot', [])
.controller('MainCtrl', [
'$scope', '$http',
function($scope, $http)
{
$scope.createPlaylist = function()
{
var artist = $scope.artist;
console.log(artist);
window.open("/login", "Playlist Creation", 'WIDTH=400, HEIGHT=500');
return $http.get('/search?=' + $scope.artist) //this doesn't pass in the artist
.success(function(data)
{
console.log(data);
});
}
}
]);
$http.get()
没有正确传递 $scope.artist` 值。
看起来您可能在字符串连接中缺少 "artist" 查询参数。
$http.get('/search?artist=' + $scope.artist)
或者,您可以将艺术家作为查询参数传递。
function createPlaylist() {
return $http.get('/search', { params : { artist : $scope.artist } })
.then(function(response) {
return response;
}, function(error) {
return $q.reject(error);
});
}
此外,我会避免使用 .success。我相信这有利于上面的语法。第一个参数是成功函数,第二个是失败函数。
可以通过
传递参数$http.get('/search', {
params: {
artist: $scope.artist
}
})
.success(function(data)
{
console.log(data);
});