Javascript 如何在JS中的HTTP get URL中附加动态查询参数?
我是新手。我有一个控制器(.js文件),在其中我编写了一个函数来对后端进行http get调用。如下图所示: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
$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¶m2=world
您可以使用AngularJS提供的
$httpParamSerializer
服务
对象:
var obj = {
param1:"world",
param2:"hello"
}
使用httpParamSerializer:
$httpParamSerializer(obj)
返回:
param1=test¶m2=world
{
返回误差;
});`
{
返回误差;
});` 我解决了这个问题。这很简单。我们也可以这样修改$url:
$http({
url: "services/rest/1.0/project/employeeDetails?param1="+value+"¶m2="+value",
method: 'GET',
headers: config
}
使用单独的“param”属性有点棘手,因为默认情况下参数是按字母顺序排序的,所以如果希望参数按所需顺序出现,我们需要编写代码来防止排序
最后,感谢您的及时回复。:) 我解决了这个问题。这很简单。我们也可以这样修改$url:
$http({
url: "services/rest/1.0/project/employeeDetails?param1="+value+"¶m2="+value",
method: 'GET',
headers: config
}
使用单独的“param”属性有点棘手,因为默认情况下参数是按字母顺序排序的,所以如果希望参数按所需顺序出现,我们需要编写代码来防止排序
最后,感谢您的及时回复。:) 我想,majke单独成角,当你把它作为参数,并通过查看可能的重复来定义,我想,majke单独成角,当你把它作为参数,并通过查看可能的重复来定义