【问题标题】:Check GET/POST requests on page检查页面上的 GET/POST 请求
【发布时间】:2014-05-31 02:52:12
【问题描述】:

我有 Angular 应用程序,控制器在用户进行任何操作(添加/删除等)后会显示一些警报。我如何检查此类请求?当用户做一些动作后端创建 json 数组。我必须在用户提出请求后才显示警报。它是单页应用程序,所有操作都无需重新加载页面。

我找到了这样的脚本here 并且它可以工作,但是可以使用 AngularJS API 来实现吗?

(function() {
  'use strict';
  var oldXHR, stateChangeHandler, prop;

  oldXHR = window.XMLHttpRequest;

  stateChangeHandler = function (evt) {
    switch (this.readyState) {
      case oldXHR.OPENED:
        console.log('Request was made', this, evt);
        break;
      case oldXHR.DONE:
        console.log('Request finished', this, evt);
        break;
    }
  };

  function newXHR() {
    var xhr = new oldXHR();
    xhr.addEventListener('readystatechange', stateChangeHandler);
    return xhr;
  }

  // Copy original states and toString
  for (prop in oldXHR)
    newXHR[prop] = oldXHR[prop];

  window.XMLHttpRequest = newXHR;
})();

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    方法 $http.get 作为方法 $http.post 有两个对您有用的属性/功能: 首先是 $http.get('url').success(function(){}).error(function(){}) 第二个 $http.get('url').then(function(){}).then(function(){})

    这两种方法对于 get 和对于 post 请求都是有效的,除了它们都做出了承诺,这在 angularJS 中非常有用。第一个为您提供成功请求和错误之间的切换案例,第二个可以有两个以上的案例。

    【讨论】:

      【解决方案2】:

      基本上你需要使用$http interceptor

      我在这个post 中提出了一个实现。

      【讨论】: