AngularJS全局修改$ http中每个请求的URL
让我们建立一个简单的例子:
$scope.whatDoesTheFoxSay = function(){ $http.post("/backend/ancientMystery", {
...
我如何全局转换发送请求的URL?本质上,我想为每个http请求添加一个URL。
我尝试过的是$rootScope
在应用程序启动时在包含URL的位置设置变量。但这不是我想要我的代码看起来像的样子:
$scope.whatDoesTheFoxSay = function(){ $http.post($rootScope.backendUrl + "/backend/hidingDeepInTheWoods", {
...
我是否应该考虑研究是否正确$httpProvider.defaults.transformRequest
?谁能给我一些基本的示例代码?
回答:
我有另一种使用带有$ http的请求拦截器的方法,它将在一个公共位置处理所有url。
<!doctype html><html ng-app="test">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.js"></script>
</head>
<body ng-controller="test" >
<!-- tabs -->
<script>
var app = angular.module('test', []);
app.config(function ($httpProvider) {
$httpProvider.interceptors.push(function ($q) {
return {
'request': function (config) {
config.url = config.url + '?id=123';
return config || $q.when(config);
}
}
});
});
app.controller('test', function ($scope,$http) {
$http.get('Response.txt').success(function (data) { alert(data) }).error(function (fail) {
});
});
</script>
</body>
</html>
以上是 AngularJS全局修改$ http中每个请求的URL 的全部内容, 来源链接: utcz.com/qa/422151.html