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

回到顶部