如何在angularjs中将参数传递给$http?

如何在angularjs中将参数传递给$http?,http,angularjs,params,Http,Angularjs,Params,假设我有两个输入框,对应的ng模型为fname和lname。如果我将http请求调用为: $http({method:'GET', url:'/search', params:{fname: fname, lname: lname}}) 它将调用url: /search?fname=fname&lname=lname 我在后端(python)遇到的错误是: 这些参数是否不作为字符串发送?如果没有,如何处理此问题?将URL'/search'构建为字符串。像 "/search?fname

假设我有两个输入框,对应的ng模型为fname和lname。如果我将http请求调用为:

$http({method:'GET', url:'/search', params:{fname: fname, lname: lname}})
它将调用url:

/search?fname=fname&lname=lname
我在后端(python)遇到的错误是:


这些参数是否不作为字符串发送?如果没有,如何处理此问题?

将URL
'/search'
构建为字符串。像

"/search?fname="+fname"+"&lname="+lname
事实上我没用过

 `$http({method:'GET', url:'/search', params:{fname: fname, lname: lname}})` 
但我确信“params”应该是
JSON.stringify
类似于
POST

var jsonData = JSON.stringify(
    {
        fname: fname,
        lname: lname 
    }
);
之后:

$http({
  method:'GET',
  url:'/search',
  params: jsonData
});

下面是一个从路由提供程序传递值的简单方法

//Route Provider
$routeProvider.when("/page/:val1/:val2/:val3",{controller:pageCTRL, templateUrl: 'pages.html'});


//Controller
$http.get( 'page.php?val1='+$routeParams.val1 +'&val2='+$routeParams.val2 +'&val3='+$routeParams.val3 , { cache: true})
        .then(function(res){
            //....
        })
以下是您的操作方法:

$http.get("/url/to/resource/", {params:{"param1": val1, "param2": val2}})
    .then(function (response) { /* */ })...


Maxim Shoustin的答案不起作用(
{method:'GET',url:'/search',jsonData}
不是有效的JavaScript文本),而JeyTheva的答案虽然简单,但由于允许XSS(连接不安全值时不会转义),因此很危险.

我们可以使用输入数据将其作为HTML文件中的参数传递,并使用ng模型绑定输入字段的值

<input type="text" placeholder="Enter your Email" ng-model="email" required>

<input type="text" placeholder="Enter your password " ng-model="password" required> 
控制器功能如下所示:

 var app = angular.module('myApp', []);

    app.controller('assignController', function($scope, $http) {
      $scope.email="";
      $scope.password="";

      $http({
        method: "POST",
        url: "http://localhost:3000/users/sign_in",
        params: {email: $scope.email, password: $scope.password}

      }).then(function mySuccess(response) {
          // a string, or an object, carrying the response from the server.
          $scope.myRes = response.data;
          $scope.statuscode = response.status;

        }, function myError(response) {
          $scope.myRes = response.statusText;
      });
    });

我们把价值观放进去了吗。then@stevek,将函数传递给
然后
子句;该函数只接受一个参数,即响应本身。对我来说,它需要“parameter”字段包装数据,如:$http.get(“/url/to/resource/”,{params:{parameters:{“param1”:val1,“param2”:val2}})对于PUT和POST,您需要使用另一种方法签名
$scope.email="";
$scope.password="";
 var app = angular.module('myApp', []);

    app.controller('assignController', function($scope, $http) {
      $scope.email="";
      $scope.password="";

      $http({
        method: "POST",
        url: "http://localhost:3000/users/sign_in",
        params: {email: $scope.email, password: $scope.password}

      }).then(function mySuccess(response) {
          // a string, or an object, carrying the response from the server.
          $scope.myRes = response.data;
          $scope.statuscode = response.status;

        }, function myError(response) {
          $scope.myRes = response.statusText;
      });
    });