Ajax AngularJS使用$http.get请求按特定顺序传递参数数据
我正在一个简单的原型应用程序中使用AngularJS,该应用程序在后端使用Domino服务器 当我打这样一个看似简单的电话时:Ajax AngularJS使用$http.get请求按特定顺序传递参数数据,ajax,angularjs,get,javascript,Ajax,Angularjs,Get,Javascript,我正在一个简单的原型应用程序中使用AngularJS,该应用程序在后端使用Domino服务器 当我打这样一个看似简单的电话时: $http({ url: $scope.hrEventsPath, method : "GET", params : { 'readform' : '', 'eventid' : $scope.queryStringPairs.eventid, 'userid
$http({ url: $scope.hrEventsPath,
method : "GET",
params : { 'readform' : '',
'eventid' : $scope.queryStringPairs.eventid,
'userid' : $scope.queryStringPairs.userid,
'login' : $scope.queryStringPairs.login } }).
success(function(data, status) {
// happy stuff
}).
error(function(data, status) {
// error handling stuff
});
似乎Angular在调用时将所有参数按字母顺序排列
因此,readform
参数不是第一个参数,eventid
是,Domino服务器阻塞。(无论“readform
”是否有值,都会发生这种情况)
不管Domino及其配置如何,是否有一种方法可以按Angularm的顺序排序,还是应该使用另一种方法
提前感谢。使用单个对象的数组,那么该对象将没有机会切换自身
[ {}, {}, {} ]
为了补充你的答案,下面是答案有效的原因。默认情况下,如果作为单个对象传递,angular会对所有参数键进行排序。感谢@StenMuchow,并感谢您提供了关于其行为方式的额外说明。虽然将对象数组传递到
params
会保留顺序,但它不会生成与传递属性对象相同的URL。我缺少什么才能使订单正常运行params:{query:5,other:2}
products?query=5&other=2
传入对象数组执行以下操作:params:[{query:5},{other:2}]
products?0=%7B%22query%22:5%7D&1=%7B%22other%22:2%7D
是否有一些代码示例要签出?可能是plunker?@StenMuchow这是一个带有代码的jsbin-您可以在$http代码中的两个方法getOrderedParams
和getParams
之间切换,以查看生成的不同URL。您可以忽略端点返回错误的事实,因为CORS未启用,我们只想以控制台中生成的URL为例。