我有一个函数,它做一个http POST请求。代码如下所示。这很好。

 $http({
   url: user.update_path, 
   method: "POST",
   data: {user_id: user.id, draft: true}
 });

我有另一个函数http GET,我想发送数据到该请求。但是我在get中没有这个选项。

 $http({
   url: user.details_path, 
   method: "GET",
   data: {user_id: user.id}
 });

http的语法。得到的是

得到(url,配置)


当前回答

从AngularJS v1.4.8开始,你可以使用 获取(url, config)如下:

var data = {
 user_id:user.id
};

var config = {
 params: data,
 headers : {'Accept' : 'application/json'}
};

$http.get(user.details_path, config).then(function(response) {
   // process response here..
 }, function(response) {
});

其他回答

HTTP GET请求不能包含要发布到服务器的数据。但是,您可以向请求添加查询字符串。

角。HTTP提供了一个名为params的选项。

$http({
    url: user.details_path, 
    method: "GET",
    params: {user_id: user.id}
 });

参见:http://docs.angularjs.org/api/ng.$http#get和https://docs.angularjs.org/api/ng/service/$http#usage(显示params参数)

你可以直接将参数传递给$http.get()下面的工作很好

$http.get(user.details_path, {
    params: { user_id: user.id }
});

你甚至可以简单地将参数添加到url的末尾:

$http.get('path/to/script.php?param=hello').success(function(data) {
    alert(data);
});

与script.php配对:

<? var_dump($_GET); ?>

导致以下javascript警告:

array(1) {  
    ["param"]=>  
    string(4) "hello"
}

从AngularJS v1.4.8开始,你可以使用 获取(url, config)如下:

var data = {
 user_id:user.id
};

var config = {
 params: data,
 headers : {'Accept' : 'application/json'}
};

$http.get(user.details_path, config).then(function(response) {
   // process response here..
 }, function(response) {
});

用于发送get请求参数i使用

  $http.get('urlPartOne\\'+parameter+'\\urlPartTwo')

这样你就可以使用你自己的url字符串