首页 文章

AngularJS将数据传递给$ http.get请求

提问于
浏览
550

我有一个执行http POST请求的函数 . 代码如下所示 . 这很好用 .

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

我有另一个http GET函数,我想将数据发送到该请求 . 但是我没有这个选择 .

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

http.get 的语法是

get(url, config)

有人可以帮我弄这个吗?

7 回答

  • 500

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

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

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

  • 4

    您可以直接将params传递给 $http.get() 以下工作正常

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

    有兴趣在GET请求中发送params和header的人的解决方案

    $http.get('https://www.your-website.com/api/users.json', {
            params:  {page: 1, limit: 100, sort: 'name', direction: 'desc'},
            headers: {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
        }
    )
    .then(function(response) {
        // Request completed successfully
    }, function(x) {
        // Request error
    });
    

    完整的服务示例将如下所示

    var mainApp = angular.module("mainApp", []);
    
    mainApp.service('UserService', function($http, $q){
    
       this.getUsers = function(page = 1, limit = 100, sort = 'id', direction = 'desc') {
    
            var dfrd = $q.defer();
            $http.get('https://www.your-website.com/api/users.json', 
                {
                    params:{page: page, limit: limit, sort: sort, direction: direction},
                    headers: {Authorization: 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
                }
            )
            .then(function(response) {
                if ( response.data.success == true ) { 
    
                } else {
    
                }
            }, function(x) {
    
                dfrd.reject(true);
            });
            return dfrd.promise;
       }
    
    });
    
  • 38

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

    angular.http为它提供了一个名为 params 的选项 .

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

    请参阅:http://docs.angularjs.org/api/ng.$http#gethttps://docs.angularjs.org/api/ng/service/$http#usage(显示 params 参数)

  • 1

    您甚至可以简单地将参数添加到网址的末尾:

    $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"
    }
    
  • 905

    AngularJS v1.4.8 开始,您可以使用get(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) {
    });
    
  • 2

    以下是ASP.NET MVC中使用angular.js参数的HTTP GET请求的完整示例:

    CONTROLLER:

    public class AngularController : Controller
    {
        public JsonResult GetFullName(string name, string surname)
        {
            System.Diagnostics.Debugger.Break();
            return Json(new { fullName = String.Format("{0} {1}",name,surname) }, JsonRequestBehavior.AllowGet);
        }
    }
    

    VIEW:

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
    <script type="text/javascript">
        var myApp = angular.module("app", []);
    
        myApp.controller('controller', function ($scope, $http) {
    
            $scope.GetFullName = function (employee) {
    
                //The url is as follows - ControllerName/ActionName?name=nameValue&surname=surnameValue
    
                $http.get("/Angular/GetFullName?name=" + $scope.name + "&surname=" + $scope.surname).
                success(function (data, status, headers, config) {
                    alert('Your full name is - ' + data.fullName);
                }).
                error(function (data, status, headers, config) {
                    alert("An error occurred during the AJAX request");
                });
    
            }
        });
    
    </script>
    
    <div ng-app="app" ng-controller="controller">
    
        <input type="text" ng-model="name" />
        <input type="text" ng-model="surname" />
        <input type="button" ng-click="GetFullName()" value="Get Full Name" />
    </div>
    

相关问题