当前位置: 首页 > 面试题库 >

AngularJS全局修改$ http中每个请求的URL

曹超
2023-03-14
问题内容

让我们建立一个简单的例子:

$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的新手。我正在使用AngularJS 1.3.15版本。当我尝试使用PUT方法调用api时,它正在生成OPTIONS请求。我不知道我在哪里做错了。我尝试了很多Stockoverflow中建议的方法,但仍然没有得到任何东西。请帮助我解决这个问题。下面是我的控制器、模型、html文件和Chrome开发人员工具网络活动截图。 控制器文件users.js 模型文件-users.js

  • 一、修改请求 在上一步中,我们恢复了截获的请求,没有进行任何更改。当我们在将请求转发到目的地之前修改被拦截的请求时,就会发挥拦截的全部功能。您可以继续上一步中的窗口和已配置的拦截规则。 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 点击查看教程 二、影片内容 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 我们配置和使用与上一教程中相同的拦截规

  • 我有一个实现接口,在其方法中,检查传入的HTTP请求,采取一些操作,然后将请求转发到反向代理处理程序()。 只要我只检查基本请求属性(如URL或标头),就可以正常工作。 当我想检查传入POST请求的主体时,例如通过调用然后使用属性,一旦请求传递到反向代理,我就会遇到错误: 我认为这是因为查看HTTP请求的主体会导致要排空的流,这意味着代理处理程序无法再次读取该流。 我一直在玩和,但我真的没有什么进

  • 我的angularjs$http请求有问题。当我向API发送请求时,浏览器阻止了它,如:FIREFOX中的错误:阻止加载混合活动内容“http://www.example.com/rest/default/V1/integration/admin/token/” CHROME出错:混合内容:页面位于'https://www.example.com/load.shtml#/register/pos/

  • 问题内容: 我有登录功能 此函数用于将变量保存到会话中, 但是当新请求检查用户是否登录时 然后返回总是“注销”,因为会话已更改。我使用Redis来存储会话,我认为这是Redis的错误,因为当我停止使用Redis时,可以,请帮帮我! 问题答案: 最好的处理方式是始终让Express处理它(如果可以的话)。 https://flaviocopes.com/express-sessions/(更新了会话

  • 问题内容: 我有一个使用AngularJS构建的简单网站,该网站调用json数据的API。 但是我遇到了跨域起源问题,是否可以解决跨域请求? 错误: XMLHttpRequest无法加载http://api.nestoria.co.uk/api?country=uk&pretty=1&action=search_listings&place_name=soho&encoding=json&list