it-swarm-es.tech

AngularJS pasando datos a la solicitud $ http.get

Tengo una función que realiza una solicitud http POST. El código se especifica a continuación. Esto funciona bien.

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

Tengo otra función para http GET y deseo enviar datos a esa solicitud. Pero no tengo esa opción en conseguir.

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

La sintaxis de http.get es

obtener (url, config)

561
Sabarish Sankar

Una solicitud HTTP GET no puede contener datos para ser publicados en el servidor. Sin embargo, puede agregar una cadena de consulta a la solicitud.

angular.http proporciona una opción para ella llamada params.

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

Consulte: http://docs.angularjs.org/api/ng.$http#get y https://docs.angularjs.org/api/ng/service/$http#usage ( muestra el params param)

925
fredrik

Usted puede pasa los parámetros directamente a $http.get() Lo siguiente funciona bien

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

A partir de AngularJS v1.4.8 , puede usar get(url, config) de la siguiente manera:

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) {
});
40
Arpit

Solución para aquellos que estén interesados ​​en enviar parámetros y encabezados en la solicitud GET

$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
});

Ejemplo de servicio completo se verá así

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;
   }

});
33
Subodh Ghulaxe

Incluso puedes simplemente agregar los parámetros al final de la url:

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

Emparejado con script.php:

<? var_dump($_GET); ?>

Resultando en la siguiente alerta de javascript:

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

Aquí hay un ejemplo completo de una solicitud HTTP GET con parámetros usando angular.js en ASP.NET MVC:

CONTROLADOR:

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);
    }
}

VER:

<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>
2
Denys Wessels

Para enviar la solicitud de obtención con el parámetro i use

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

Por esto puedes usar tu propia cadena de url

1
moin khan