在 angularjs 中的所有 $http 服务中传递一个公共数据
Pass a common data in all $http services in angularjs
我希望在所有 $http 调用中发送特定数据。我可以在某处定义它以便我不需要更改所有 $http 调用吗?
例如,
$http({
method: 'POST',
url: serviceUrl,
data: {
"key1": data1,
"key2": data2,
}
})
在我所有的 $http 调用中添加一个 data3 作为默认值。预先感谢您的回复。
您可以使用 $httpProvider
转换或拦截 $http 对象
var app = angular.module('test', []);
app.config(function ($httpProvider) {
$httpProvider.defaults.transformRequest = function(data){
if (data === undefined) {
return data;
}
data.key3 = "This will always be set in a POST";
return $.param(data);
}
});
我从未尝试过像这样附加 POST 数据,但它应该可以工作。
对于 GET 参数转换...
$httpProvider.interceptors.push(function() {
return {
'request': function(config) {
//config.params contains query/request parameters
if (config.params){
config.params.key3 = "Hello World"
}
return config;
}
};
});
我希望在所有 $http 调用中发送特定数据。我可以在某处定义它以便我不需要更改所有 $http 调用吗? 例如,
$http({
method: 'POST',
url: serviceUrl,
data: {
"key1": data1,
"key2": data2,
}
})
在我所有的 $http 调用中添加一个 data3 作为默认值。预先感谢您的回复。
您可以使用 $httpProvider
转换或拦截 $http 对象var app = angular.module('test', []);
app.config(function ($httpProvider) {
$httpProvider.defaults.transformRequest = function(data){
if (data === undefined) {
return data;
}
data.key3 = "This will always be set in a POST";
return $.param(data);
}
});
我从未尝试过像这样附加 POST 数据,但它应该可以工作。
对于 GET 参数转换...
$httpProvider.interceptors.push(function() {
return {
'request': function(config) {
//config.params contains query/request parameters
if (config.params){
config.params.key3 = "Hello World"
}
return config;
}
};
});