Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在JS中的HTTP get URL中附加动态查询参数?_Javascript_Angularjs_Angularjs 1.5 - Fatal编程技术网

Javascript 如何在JS中的HTTP get URL中附加动态查询参数?

Javascript 如何在JS中的HTTP get URL中附加动态查询参数?,javascript,angularjs,angularjs-1.5,Javascript,Angularjs,Angularjs 1.5,我是新手。我有一个控制器(.js文件),在其中我编写了一个函数来对后端进行http get调用。如下图所示: $http({ url: "services/rest/1.0/project/employeeDetails", method: 'GET', headers: config, transformResponse: funct

我是新手。我有一个控制器(.js文件),在其中我编写了一个函数来对后端进行http get调用。如下图所示:

             $http({
                 url: "services/rest/1.0/project/employeeDetails",
                 method: 'GET',
                 headers: config,
                 transformResponse: function (data) {
                     var x2js = new X2JS();
                     var json = x2js.xml_str2json(data);
                     return json;
                 }
             }).success(function (response) {
                 alert("success for account details with response:"+response);
                if (response && response.siteDetailsList.errorCode == 0)
                     $scope.accountdetails = response;
             });
现在的问题是,我需要向我的url添加两个查询参数,我在上面的代码片段中提到了这一点,所以最终的url将如下所示:

services/rest/1.0/project/employeeDetails ? param1=world & param2=hello
这个param1和param2值是我从HTML文件的输入文本框中获取的。
知道我们如何将动态查询参数附加到此URL吗

您可以使用
params
config属性:

   $http({
         url: "services/rest/1.0/project/employeeDetails",
         method: 'GET',
         headers: config,
         params: {
             param1: someValue,
             param2: anotherValue
         },
         transformResponse: function (data) {
             var x2js = new X2JS();
             var json = x2js.xml_str2json(data);
             return json;
         }
     }).success(function (response) {
         alert("success for account details with response:"+response);
        if (response && response.siteDetailsList.errorCode == 0)
             $scope.accountdetails = response;
     });

您可以使用
params
config属性:

   $http({
         url: "services/rest/1.0/project/employeeDetails",
         method: 'GET',
         headers: config,
         params: {
             param1: someValue,
             param2: anotherValue
         },
         transformResponse: function (data) {
             var x2js = new X2JS();
             var json = x2js.xml_str2json(data);
             return json;
         }
     }).success(function (response) {
         alert("success for account details with response:"+response);
        if (response && response.siteDetailsList.errorCode == 0)
             $scope.accountdetails = response;
     });

您可以使用AngularJS提供的
$httpParamSerializer
服务

对象:

var obj = {
  param1:"world",
  param2:"hello"
}
使用httpParamSerializer:

$httpParamSerializer(obj)
返回:

param1=test&param2=world

您可以使用AngularJS提供的
$httpParamSerializer
服务

对象:

var obj = {
  param1:"world",
  param2:"hello"
}
使用httpParamSerializer:

$httpParamSerializer(obj)
返回:

param1=test&param2=world
{ 返回误差; });`

{ 返回误差;
});`

我解决了这个问题。这很简单。我们也可以这样修改$url:

$http({
         url: "services/rest/1.0/project/employeeDetails?param1="+value+"&param2="+value",
         method: 'GET',
         headers: config
         }
使用单独的“param”属性有点棘手,因为默认情况下参数是按字母顺序排序的,所以如果希望参数按所需顺序出现,我们需要编写代码来防止排序


最后,感谢您的及时回复。:)

我解决了这个问题。这很简单。我们也可以这样修改$url:

$http({
         url: "services/rest/1.0/project/employeeDetails?param1="+value+"&param2="+value",
         method: 'GET',
         headers: config
         }
使用单独的“param”属性有点棘手,因为默认情况下参数是按字母顺序排序的,所以如果希望参数按所需顺序出现,我们需要编写代码来防止排序


最后,感谢您的及时回复。:)

我想,majke单独成角,当你把它作为参数,并通过查看可能的重复来定义,我想,majke单独成角,当你把它作为参数,并通过查看可能的重复来定义