javascript - ejemplos - angularjs vs angular
AngularJS pasando datos a la solicitud $ http.get (7)
Tengo una función que hace 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)
¿Puede alguien ayudarme con esto?
A partir de AngularJS v1.4.8 , puede usar get(url, config)
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) {
});
Este es 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>
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"
}
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
Puede pasar params directamente a $http.get()
Lo siguiente funciona bien
$http.get(user.details_path, {
params: { user_id: user.id }
});
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;
}
});
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 ello 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
)