Javascript $http get参数不起作用

Javascript $http get参数不起作用,javascript,angularjs,http,angular-http,Javascript,Angularjs,Http,Angular Http,有人知道为什么这不起作用吗 $http .get('accept.php', { source: link, category_id: category }) .success(function (data, status) { $scope.info_show = data }); 这确实有效: $http .get('accept.php?source=' + link + '&category

有人知道为什么这不起作用吗

$http
    .get('accept.php', {
        source: link,
        category_id: category
    })
    .success(function (data, status) {
        $scope.info_show = data
    });
这确实有效:

$http
    .get('accept.php?source=' + link + '&category_id=' + category)
    .success(function (data, status) {
        $scope.info_show = data
    });

get
调用中的第二个参数是配置对象。你想要这样的东西:

$http
    .get('accept.php', {
        params: {
            source: link,
            category_id: category
        }
     })
     .success(function (data,status) {
          $scope.info_show = data
     });
有关详细信息,请参见的参数部分,第二个参数是配置对象:

get(url[config])
执行
GET
请求的快捷方式

您可以将代码更改为:

$http.get('accept.php', {
    params: {
        source: link, 
        category_id: category
    }
});
或:


作为旁注,由于Angular 1.6
.success
,请使用
。然后改用

$http.get('/url', config).then(successCallback, errorCallback);

注意,如上所述使用
params
还解决了不使用
数据的GET请求问题。AngularJS不会像jQuery那样自行解决这个问题。(我不认为这是一件好事或坏事,只是不同,可能会绊倒人们)。我在params对象中的键值属性没有定义。这在服务中是否应该有所不同?另外,当
params
对象为空,或其所有属性为
null
未定义
时,将不会向查询字符串添加任何内容。
$http.get('/url', config).then(successCallback, errorCallback);