Angular - 重新启动http?

时间:2015-12-22 09:37:10

标签: javascript asp.net angularjs

有时在我的应用程序中,获取列表或某种资源的HTTP调用将失败,没有明显的原因,但是,如果它立即重新启动它将起作用。

有没有办法配置所有HTTP调用来说明

的内容
ValueError: could not convert string to float

我在我的应用程序(ASP.NET)中发现,我经常需要双击一个链接来加载页面。我觉得这可能与代码中的HTTP调用问题相同。不确定如何追踪或解除这类问题,如果有人对此有任何想法,你真的会帮助我!

任何建议都会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想在Angular中更改$ http服务的行为,那么有一种方法。 This post describes it briefly,这是帖子中引用的重要内容。:

  

例如,如果您正在对一个大的进行全球性的后期更改   正在进行的项目,或者想要改变XHR请求的行为   第三方代码无法更改。在这种情况下你   可能会使用$ provide.decorator()来全局替换$ http   包装版。

通过包装$ http服务,您可以选择更改行为。

听起来你有不同的问题,因为你需要两次触发通话,我建议你先解决。

答案 1 :(得分:1)

你可以使用$httpInterceptor来做,也许上帝解决方案可以解决问题而不是那个,顺便说一下,有一个例子:

  

this wonderful post maybe help you to understand $http interceptors

(function(window, angular, APP) {
  var MAX_ERRORS = 1; // after that: giving up
  
  function FeelAgainConfig($httpProvider) {
    $httpProvider.interceptors.push(function FeelAgainInterceptor($q, $http) {
      var interceptors = {};
      
      interceptors.responseError = function FeelAgainInterceptorResponseError(data) {
        // implement an error counter that helps you to not fall in an infinite call stack
        if(data.errorCount >= MAX_ERRORS) {
          return $q.reject(data);
        };
        
        // Perform the request again;
        
      };
      
      return interceptors;
    });
  }
  
  APP
    .config(FeelAgainConfig)
  ;
})(window, window.angular, window.angular.module('feelAgain$http', []));