AngularJS passando dados para $ http.get request

Eu tenho uma function que faz uma solicitação http POST. O código é especificado abaixo. Isso funciona bem.

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

Eu tenho outra function para http GET e quero enviar dados para essa solicitação. Mas eu não tenho essa opção em conseguir.

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

A syntax para http.get é

get (url, config)

alguém poderia me ajudar com isso?

    Uma solicitação HTTP GET não pode conter dados a serem lançados no servidor. No entanto, você pode adicionar uma string de consulta à solicitação.

    O angular.http fornece uma opção para isso chamado params .

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

    Veja: http://docs.angularjs.org/api/ng.$http#get e https://docs.angularjs.org/api/ng/service/$http#usage (mostra o parâmetro params )

    Você pode passar params diretamente para $http.get() O seguinte funciona bem

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

    A partir do AngularJS v1.4.8 , você pode usar get(url, config) seguinte maneira:

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

    Solução para aqueles que estão interessados ​​em enviar parâmetros e headers no pedido 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 }); 

    Exemplo de serviço completo será semelhante a este

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

    Você pode até adicionar os parâmetros ao final do URL:

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

    Emparelhado com script.php:

      

    Resultando no seguinte alerta de javascript:

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

    Para enviar solicitação get com o parâmetro i use

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

    Com isso, você pode usar sua própria string de URL

    Aqui está um exemplo completo de uma solicitação HTTP GET com parâmetros usando angular.js no 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); } } 

    VISÃO: