AngularJS passa i dati alla richiesta $ http.get

Ho una funzione che fa una richiesta POST http. Il codice è specificato di seguito. Funziona bene

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

Ho un’altra funzione per http GET e voglio inviare i dati a quella richiesta. Ma non ho questa opzione in get.

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

La syntax per http.get è

get (url, config)

Qualcuno può aiutarmi con questo?

Una richiesta GET HTTP non può contenere dati da inviare al server. Tuttavia, è ansible aggiungere una stringa di query alla richiesta.

angular.http fornisce un’opzione per questo chiamato params .

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

Vedi: http://docs.angularjs.org/api/ng.$http#get e https://docs.angularjs.org/api/ng/service/$http#usage (mostra il parametro params )

È ansible passare parametri direttamente a $http.get() Quanto segue funziona $http.get()

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

A partire da AngularJS v1.4.8 , puoi usare get(url, config) come segue:

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

Soluzione per coloro che sono interessati a inviare parametri e intestazioni nella richiesta 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 }); 

L’esempio di servizio completo sarà simile a questo

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

Puoi anche aggiungere semplicemente i parametri alla fine dell’URL:

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

Accoppiato con script.php:

  

Risultante nel seguente avviso javascript:

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

Per l’invio ottieni richiesta con parametro che uso

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

Con questo puoi usare la tua stringa di url

Ecco un esempio completo di una richiesta HTTP GET con parametri che utilizzano angular.js in ASP.NET MVC:

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

VISTA: