我想在所有请求上发送相同的网址参数,无论是获取还是发布请求,如下所示:
?region=us&toolName=abc
是否可以使用AngularJS拦截器?或者还有其他更好的方法吗?
感谢您的帮助。
答案 0 :(得分:0)
使用httpInterceptor最好,然后你可以检查是否已经存在其他参数并扩展它们......或者只使用显示的那些
答案 1 :(得分:0)
AngularJS $ http方法允许您通过config
对象指定您的HTTP请求谓词以及此类参数,该对象可以包含params
对象,其类似于{ region: "us", toolName: "abc" }
反过来成为一个查询字符串。使用示例:
$http({ url: "test.aspx", method: "GET", params: { region: "us", toolName: "abc" } }).then(
function(response){
alert("success!");
}, function(response){
alert("failure.");
}
答案 2 :(得分:0)
创建服务以设置默认参数请求:
'use strict';
var ParamsService = function() {
return {
set: function (params) {
var defaultParams = {
region: 'us',
toolName: 'abc'
};
// Use any function to extend objects (currently, I'm using lodash)
return _.extend(defaultParams, params);
}
};
};
ParamsService.$inject = [
];
请求:
$http({
url: 'url.json',
method: 'GET',
params: ParamsService.set({otherProperty: otherValue})
})
.then(
function (data) {
},
function (error) {
}
);
这不是一个好的解决方案,但可以帮助你解决问题:)
答案 3 :(得分:0)
$ httpProvider.defaults.headers.common ['key'] ='value'